[Tinyos-help] SuRF Developer's Kit / OSHAN Announcements

2010-03-16 Thread David Moss
People Power Company (http://www.peoplepowerco.com) announced its SuRF
Developer Kit (http://www.peoplepowerco.com/developers/) yesterday.  This
really is the next generation of open source wireless sensor networks, using
an MSP430XV2 core combined with a radio in a single 7x7 mm system-on-a-chip
(http://focus.ti.com/docs/prod/folders/print/cc430f5137.html).  These chips
are not even in production yet, but we got our hands on a bunch, and we're
making them available to other wireless sensor network developers.  And...
they're running TinyOS.

Check out the specs sheet on this SuRF developer platform:
http://www.peoplepowerco.com/developers/SuRFQuickSpec.pdf.  Since the core
of the platform is so small, we made the developer board nice and large so
you can get your hands in there to prototype new wireless devices.


The CC430F5137 SoC featured on the SuRF platform contains all kinds of
goodies:

* MSPGCC4 support (available now on
https://sourceforge.net/projects/mspgcc4/http://sourceforge.net/projects/oshan/
)
* RF1A Radio (300 - 900 MHz with SuRF's matching network configured for 900
MHz, up to +10 dBm, 2-FSK / GFSK / MSK / OOK / ASK modulation, data rates up
to 500 kbps, and 255+ byte packets).
* The radio gives you at least 2-3x the range of older 2.4 GHz platforms.
This kind of range is critical for making consumer home wireless electronics
work reliably.
* AES-128 and CRC coprocessor
* USCI (UART, SPI, IrDA- and I2C-capable)
* FLL so you can operate it without an external crystal
* Real-time-clock
* 12-bit ADC's
* 96-segment LCD support is available on the CC430F6137 version of the chip,
which is not included on SuRF.


We've produced a Linux Live DVD with Ubuntu 9.10 and the next release of
TinyOS for the community, and links to the ISO will be posted later this
month.  The Live DVD will also contain an early version of OSHAN, which
stands for Open Source Home Area Network.  OSHAN, which is also covered by
a BSD license, sits side-by-side with the TinyOS baseline to extend it and
provide functionality developers need to commercialize home consumer
wireless devices.  The SuRF developer kit is a tool to get started with
OSHAN.  The development process for OSHAN is based on the practices used by
Linus Torvalds to guide Linux, with Dr. Peter Bigot as the gatekeeper for
OSHAN and its git repository.


SuRF and OSHAN received a lot of press during its announcement yesterday.
Here are a few articles:

http://venturebeat.com/2010/03/15/people-power-releases-sdk-for-wireless-home-energy-sensors/
http://www.techthefuture.com/technology/surf-sdk-diy-smart-grid/
http://www.networkworld.com/news/2010/031510-people-power-pushes-green-wireless.html
http://www.infoworld.com/d/developer-world/people-power-pushes-green-wireless-apps-664
http://www.earthtechling.com/2010/03/surf-smart-grid-kit-lets-you-develop-own-smart-grid-device/
http://earth2tech.com/2010/03/15/get-your-open-source-home-energy-developer-kit-courtesy-of-people-power/
http://blogs.zdnet.com/green/?p=10659
http://green.tmcnet.com/topics/green/articles/78637-people-power-intros-wireless-apps-potential-green-apps.htm

Of course, leave it to the press to muddle a few facts:  TinyOS has
thousands of developers, OSHAN is getting ramped up.  If you're interested
in getting involved with the development of OSHAN, which will remain freely
available and strong enough to use in real commercial devices, please
contact me.


Finally, People Power will be hosting SuRF Competition (
http://www.peoplepowerco.com/contest/).  We're giving developers and
researchers several months to produce something cool with SuRF, and the
winner(s) will be selected by our technical advisory board.  The winner will
receive 5,000 shares of People Power stock options (someday worth millions),
$5,000 USD, and a free SuRF Developer's Kit.


You can pre-order your SuRF developer kit here:
http://www.peoplepowerco.com/store/surf-developer-s-kit.html.  We'll keep
you updated as more open source developments are available.  Enjoy,

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

Re: [Tinyos-help] CC2420 energy consumptions

2008-09-25 Thread David Moss
Are you compiling in the low power listening layer with the stack?  By
default it is not there to save ROM for apps that don't need it. Add lpl
to your make command, like make telosb lpl or just add
CFLAGS+=-DLOW_POWER_LISTENING to your Makefile to add in the LPL layer.
You'll see a warning telling you the LPL layer has been compiled in.

You should only have to call setLocalSleepInterval once at the start of your
application.  After that, the layer in the radio stack responsible for
managing radio power will automatically put the radio back to sleep when no
more activity is found on the channel.  

The amount of time the radio is awake after activity is programmable by
editing the DELAY_AFTER_RECEIVE preprocessor variable found in DefaultLpl.h
(in the latest stack version).

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rediviva
Goth
Sent: Thursday, September 25, 2008 12:18 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] CC2420 energy consumptions

Hi to all
I am an engineering student and I'm studying consumptions for the
CC2420 radio. I have noticed that

energy consumptions are very high and I tried to use LPL interface to
reduce consumptions.
In my test program I switched the radio, I set the timer and when it
is called the event fired I send

data to another mote. Every time I send data invoke the command
setLocalSleepInterval to avoid

unnecessary energy consumptions of radio, but consumption remains unchanged.
How should I use interface LPL? someone can show me an example code if
it is possible?
Thank you

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

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


Re: [Tinyos-help] 802.15.4 TinyOS Qs

2008-09-05 Thread David Moss
Length = length of the header + payload of the packet, minus the size of the
length byte itself (1).  This is what allows for variable length packets.

 

DSN = Data Sequence Number, a number incremented for each packet sent by a
particular node.  This is used in acknowledging that packet, and also
filtering out duplicate packets.

 

Type = TinyOS AM type.  When you create a new AMSenderC(AM_WHATEVER), the
AM_WHATEVER definition is the type of packet.

 

TOSH_DATA_LENGTH defaults to 28, it represents the maximum size of the
payload portion of the packet, and is specified in the tos/types/message.h
file.

 

All of these fields will be filled in automatically by the radio stack when
you attempt to send a message.

 

-David

 

 

 

 

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jim Fell
Sent: Friday, September 05, 2008 8:45 AM
To: tinyos-help@millennium.berkeley.edu
Cc: Jim Fell
Subject: [Tinyos-help] 802.15.4 TinyOS Qs

 

Hello.  On lines 45 through 59 of ./tinyos-2.x/tos/chips/cc2420/CC2420.h the
CC2420 header is specified:

 

typedef nx_struct cc2420_header_t {

  nxle_uint8_t length;

  nxle_uint16_t fcf;  // Frame Control (Field)

  nxle_uint8_t dsn;

  nxle_uint16_t destpan;  // Destination PAN ID

  nxle_uint16_t dest; // Destination address

  nxle_uint16_t src;  // Source address

  

  /** I-Frame 6LowPAN interoperability byte */

#ifdef CC2420_IFRAME_TYPE

  nxle_uint8_t network;   // I-frame (interoperability frame)  byte

#endif

 

  nxle_uint8_t type;  // Packet type

} cc2420_header_t;

 

Can someone please clarify for me what the length and dsn fields are?  Is
dsn Device Sequence Number?  How is length used?

 

Can the type field be anything?  For example, if I wanted to add additional
RF commands to the stack, could I make my own definitions using this type
field to specify each, or is it a static field?

 

Where is the maximum payload size specified?  Is it TOSH_DATA_LENGTH (line
96 of CC2420.h)?

 

Thanks,

 

-Jim

 

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

Re: [Tinyos-help] PacketLink

2008-07-21 Thread David Moss
Sorry, not sure why Blaze.h was being included.  Please replace all
occurrences of #include Blaze.h with #include CC2420.h.  You won't need
the blaze.h file.

FYI, blaze is the project name of another radio stack that uses the
CC1100/CC2500 radios.

-David



-Original Message-
From: David Valencia [mailto:[EMAIL PROTECTED] 
Sent: Monday, July 21, 2008 11:40 AM
To: [EMAIL PROTECTED]
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: PacketLink

Thanks David for the abrupt reply.  I grabbed those attachments, did what
you told me but I got the following compiler errors:

/opt/tinyos-2.x/tos/chips/cc2420/unique/DummyReceiveP.nc:2:19: Blaze.h: No
such file or directory
In file included from
/opt/tinyos-2.x/tos/chips/cc2420/CC2420ActiveMessageC.nc:6
3,
 from
/opt/tinyos-2.x/tos/platforms/telosa/ActiveMessageC.nc:64,
 from BaseStationC.nc:71:
In component `UniqueReceiveC':
/opt/tinyos-2.x/tos/chips/cc2420/unique/UniqueReceiveC.nc:69: failed to
preprocess /opt/tinyos-2.x/tos/chips/cc2420/unique/DummyReceiveP.nc
/opt/tinyos-2.x/tos/chips/cc2420/unique/UniqueReceiveC.nc:70: no match
/opt/tinyos-2.x/tos/chips/cc2420/lpl/DummyLplC.nc:39:2: warning: #warning
*** LOW POWER COMMUNICATIONS DISABLED ***
make: *** [exe0] Error 1

I do not think you included Blaze.h as an attachment, unless of course I
should have that already.

Thanks in advance.

David

 Message: 6
 Date: Mon, 21 Jul 2008 10:46:58 -0700
 From: David Moss [EMAIL PROTECTED]
 Subject: Re: [Tinyos-help] PacketLink
 To: 'David Valencia' [EMAIL PROTECTED],
   tinyos-help@millennium.berkeley.edu
 Message-ID: [EMAIL PROTECTED]
 Content-Type: text/plain; charset=us-ascii

 By default, the base station will filter out duplicate packets just like
 any
 other node.  It will not display the retransmission attempts.

 I've attached a few files you can drop into your tos/chips/cc2420/unique
 directory that will bypass the UniqueReceive layer if RECEIVE_HISTORY_SIZE
 =
 0.  This will stop the filtering of duplicate packets.

 Just do a CFLAGS+=-DRECEIVE_HISTORY_SIZE=0 in your BaseStation Makefile.

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of David
 Valencia
 Sent: Monday, July 21, 2008 10:37 AM
 To: tinyos-help@millennium.berkeley.edu
 Subject: [Tinyos-help] PacketLink


 When using the PacketLink interface, and a node requires retransmission of
 a packet, if a BaseStation is being used to monitor network activity will
 the BaseStation see all of the retransmission attempts?

 As a simple test, I setup one node to transmit a packet using:

 call PacketLink.setRetries(Msg, 30);
 call PacketLink.setRetryDelay(Msg, 10);

 before I send, and it transmits to a destination address of a mote that is
 not on so I can force the retransmission.

 I have a mote programmed with the BaseStation application and all the
 BaseStation picks up is the initial packet sent by the mote but not the
 re-transmissions.


 --
 Development environment:  CYGWIN
 Platform:  TelosB (tinyos-2.x:  cvs disribution)

 ___
 Tinyos-help mailing list
 Tinyos-help@millennium.berkeley.edu
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
 -- next part --
 A non-text attachment was scrubbed...
 Name: DummyReceiveP.nc
 Type: application/octet-stream
 Size: 209 bytes
 Desc: not available
 Url :

https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/200807
21/64b9318b/attachment.obj
 -- next part --
 A non-text attachment was scrubbed...
 Name: UniqueReceive.h
 Type: application/octet-stream
 Size: 1887 bytes
 Desc: not available
 Url :

https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/200807
21/64b9318b/attachment-0001.obj
 -- next part --
 A non-text attachment was scrubbed...
 Name: UniqueReceiveC.nc
 Type: application/octet-stream
 Size: 2583 bytes
 Desc: not available
 Url :

https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/200807
21/64b9318b/attachment-0002.obj
 -- next part --
 A non-text attachment was scrubbed...
 Name: UniqueReceiveP.nc
 Type: application/octet-stream
 Size: 5517 bytes
 Desc: not available
 Url :

https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/200807
21/64b9318b/attachment-0003.obj

 --

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

 End of Tinyos-help Digest, Vol 63, Issue 95
 ***



-- 
Development environment:  CYGWIN
Platform:  TelosB (tinyos-2.x:  cvs disribution)



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

Re: [Tinyos-help] wavelength

2008-07-18 Thread David Moss
Just calculate it.

 

Wavelength = c / f

 

where c = speed of light ~= 3*10^8 m/s, f = frequency

 

The default channel, 26, is somewhere in the high region of the 2.4 GHz ISM
band, which would be around 2.485 GHz = 2.485*10^9 Hz.

 

Wavelength(high end) = (3*10^8 m/s) / (2.485*10^9 1/s) = 0.1208 meters =
12.08 cm.

 

The low end of the 2.4 GHz is 2.400 GHz. so the wavelength there is:

 

Wavelength(low end) = (3*10^8 m/s) / (2.0*10^9 Hz) = 15 centimeters

 

So the wavelength is between 12 to 15 centimeters, depending on which
channel you're sitting on.  13 centimeters is a good answer.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Nahr ...
Sent: Friday, July 18, 2008 5:37 AM
To: Ittipong Khemapech
Cc: tinyos-help
Subject: Re: [Tinyos-help] wavelength

 

I am using cc2420 chipcon with micaz mote
I think I should review CC2420 datasheet

Thanks for all

2008/7/18 Ittipong Khemapech [EMAIL PROTECTED]:

It depends upon at which frequency they are working, I guess.

Ittipong

2008/7/18 Nahr ... [EMAIL PROTECTED]:

Hi all,


Which is the wavelength of the signals generated by the motes in the TinyOS
implementation?



Thanks a lot.


Nahr Elk

 

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

 

 

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

Re: [Tinyos-help] CCA Check in application layer.

2008-07-17 Thread David Moss
If you want to check the channel *before* sending a packet, you can sample
the CCA pin directly.  This GeneralIO is provided by HplCC2420PinsC.

The code you're looking at here actually sends a packet, if the channel is
immediately found to be clear.  If you're not doing so already, you must
also acquire the SPI bus resource before sending commands over SPI. 

-David



-Original Message-
From: Hui Kang [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 17, 2008 10:26 AM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: CCA Check in application layer.

Dear All:
In my tinyos-2.x application, I would like to check the channel before 
sending a packet. By copying the following code from CC2420TransmitP.nc, 
I found the congest is always set as TRUE even I have only one mote turn 
on. Could anyone help to solve this problem or any other smarter way to 
check CCA? Thanks.

uint8_t status;
bool congestion = TRUE;
 
atomic{
call CSN.clr();

status = call STXONCCA.strobe();
if ( !( status  CC2420_STATUS_TX_ACTIVE ) ) {
status = call SNOP.strobe();
  if ( status  CC2420_STATUS_TX_ACTIVE ) {
  congestion = FALSE;
  }
}
call CSN.set();
}

- Hui




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


Re: [Tinyos-help] CCA Check in application layer.

2008-07-17 Thread David Moss
Clear channel assessments are performed automatically by the CC2420 radio
stack before any and every transmission, unless you explicitly disable it.
In the CC2420 radio, a CSMA strategy is implemented where initial and
congestion backoffs are set for random lengths of time to prevent
transmissions from taking place at the same time.  These backoffs use an
alarm that fires asynchronously, interrupting any code you have executing,
unless you have your code in an atomic block.  

When the backoff timer fires, the radio chip itself is responsible for
sampling the channel to make sure the channel is clear before proceeding
with a transmission.  

There is a case where two radios attempt to transmit at exactly the same
time, sample the channel and see it's clear, and proceed to collide.  This
doesn't happen too often, but it does exist.  

If the channel is found to be in use at the time it is sampled, a congestion
backoff will allow the radio to wait for a random period of time before
trying again.

If you are attempting to add in your own channel sharing CSMA functionality
in the application layer to make sure the channel is clear before sending,
you'll find it to be of no use:  the initial backoff set in the radio stack
will automatically cause a significant delay before sending the packet.  By
the time the packet begins transmitting out of the radio, it could be
several milliseconds after you gave the initial command to send.  

-David



-Original Message-
From: Hui Kang [mailto:[EMAIL PROTECTED] 
Sent: Thursday, July 17, 2008 1:27 PM
To: David Moss
Subject: Re: CCA Check in application layer.

David Moss wrote:
 Yes, I think it essentially reads the CCA pin as well.  Indeed that's what
 PowerCycleP uses to see if something else is transmitting on the channel.

   
But there is still a problem. When two nodes start the loop at the same 
time, they will not receive any message. Then when exiting the loop, 
they start sending message together, which causes some collision. Is 
this correct?

- Hui
 -David



 -Original Message-
 From: Hui Kang [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, July 17, 2008 1:04 PM
 To: David Moss
 Subject: Re: CCA Check in application layer.

 Hi, David,
 I find the interface ReceiveIndicator may be more suitable; it is used 
 by PowerCycleP.

 - Hui
 David Moss wrote:
   
 Is this in a while() loop?  In other words, how fast are you sampling?
 Message transmissions can be on the order of ~1 ms.  

 If you have a node sitting there checking the CCA pin, and another node
 transmitting nearby, do you see the LED's toggle from the CCA pin
 
 toggling?
   
 Take a look at the PowerCycleP module in the low power listening
 implementation. It monitors the channel for activity using the CCA pin to
 determine if there is a transmitter on the channel, and it may be a good
 example of how to set something like this up.

 -David




 -Original Message-
 From: Hui Kang [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, July 17, 2008 11:52 AM
 To: David Moss
 Subject: Re: CCA Check in application layer.

 David Moss wrote:
   
 
 If you want to check the channel *before* sending a packet, you can
   
 sample
   
 the CCA pin directly.  This GeneralIO is provided by HplCC2420PinsC.

 The code you're looking at here actually sends a packet, if the channel
   
 is
   
 immediately found to be clear.  If you're not doing so already, you must
 also acquire the SPI bus resource before sending commands over SPI. 

 -David
   
 
   
 David,
 thanks for your reply.
 I use the interface GeneralIO as CCA and wire it to HplCC2420PinsC. My 
 code is
 if ( call CCA.get() ) {
 // toggle Blue led and send message
 }
 else {
 // toggle Red led
 }
 Now I use three motes and find even when the three motes transmit 
 message at the same time (they blink blue led together), CCA.get( ) 
 still returns true -  it does not detect other motes is transmitting. Is 
 there any problem? Thanks.

 - Hui Kang
   
 
 -Original Message-
 From: Hui Kang [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, July 17, 2008 10:26 AM
 To: David Moss
 Cc: tinyos-help@millennium.berkeley.edu
 Subject: CCA Check in application layer.

 Dear All:
 In my tinyos-2.x application, I would like to check the channel before 
 sending a packet. By copying the following code from CC2420TransmitP.nc,

 I found the congest is always set as TRUE even I have only one mote turn

 on. Could anyone help to solve this problem or any other smarter way to 
 check CCA? Thanks.

 uint8_t status;
 bool congestion = TRUE;
  
 atomic{
 call CSN.clr();

 status = call STXONCCA.strobe();
 if ( !( status  CC2420_STATUS_TX_ACTIVE ) ) {
 status = call SNOP.strobe();
   if ( status  CC2420_STATUS_TX_ACTIVE ) {
   congestion = FALSE;
   }
 }
 call CSN.set();
 }

 - Hui

Re: [Tinyos-help] adding some info to the acknowledgement

2008-07-16 Thread David Moss
You can't modify the acknowledgment frame generated by hardware.  It is
possible to create your own acknowledgment in software, but that will take
quite a bit of work.

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Maria
Luisa Ruiz de Arbulo
Sent: Wednesday, July 16, 2008 8:53 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] adding some info to the acknowledgement


Hi everybody,

I'm programming a radio CC2420 using TinyOs1.x. I'm working with 
automatic acknowledgement, so i don't have to care about this for 
every transmission/reception of packets. Is it possible, in this 
mode, to access the acknowledgment packet and write some bits info in?
If not, how should i do it?

Thanks in advance

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


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


Re: [Tinyos-help] data rate of cc2420 on tmote

2008-07-14 Thread David Moss
The raw data rate is 250 kbps.  You'll never achieve this in any practical
application because of the CSMA channel sharing taking place.  The biggest
impedance to throughput is clear channel assessments and the CSMA backoffs.
The acknowledgment wait period is another big delay.  SPI bus speeds also
hamper the speed of transmissions.  If you were to disable acknowledgments
and CSMA and enable DMA on the SPI bus if it's available (in MSP430's),
you'll be transmitting a lot faster.  This works fine for point-to-point
systems in an interference free environment, but typically won't work well
for true wireless networks.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Kirak,
Hong
Sent: Monday, July 14, 2008 11:07 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] data rate of cc2420 on tmote

 

Hi,

 

I found some articles about cc2420 data rate from mailing list.

 

Is it true that maximum reliable data rate is about 50kbps? (without any
interferences)

 

Actually I only achieved 30kbps, but I think it's because that I serialized
sending. (send - sendDone - send - .)

 

And I didn't touched any registers on CC2420 yet.

 

Thanks,

Kirak

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

Re: [Tinyos-help] multicast messages

2008-07-11 Thread David Moss
Hi Andrea -

 

You cannot specify a subset of nodes to send a packet to without programming
in your own logic (i.e. deliver the packet to the broadcast address and
include the list of addresses that should accept the packet within the
payload).  The AM_BROADCAST_ADDR is the address to use when you want a
packet to get delivered to more than one node.  

 

Please send questions to tinyos-help@millennium.berkeley.edu

 

-David

 

 

 

 

 

  _  

From: Andrea Maestrini [mailto:[EMAIL PROTECTED] 
Sent: Friday, July 11, 2008 12:34 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: multicast messages

 

Hi to all!

I 'm new in TinyOS world and I have read the TEP 126 CC2420 RAdio Stack and
TinyOS 2.0 tutorial and I have a doubtI have a simple question for you:

- How to send a packet to a group of nodes but not to all of them? I can do
broadcast AM_BROADCAST_ADDR  and unicast by specifying the node address
but how to do multicast in AMSend.send(  ) ? In TinyOS 2.0 Can I do
multicast comunication?
Thanks for your help!
Andrea

 
Andrea Maestrini 
CREATE-NET 
Via alla Cascata 56C - 38100 Povo, Trento - Italy 
e-mail: [EMAIL PROTECTED] 
Phone: (+39) 0461 408400 personal ext: 311 
Mobile: (+39) 3473390671 
Fax: (+39) 0461 421157 
www.create-net.org 
 
The information transmitted is intended only for the person or entity to
which it is addressed and may 
contain confidential and/or privileged material. Any review, retransmission,
dissemination or other 
use of, or taking of any action in reliance upon, this information by
persons or entities other than the 
intended recipient is prohibited according to the Italian Law 196/2003 of
the Legislature. 
If you received this in error, please contact the sender and delete the
material from any computer. 
 

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

Re: [Tinyos-help] MTS400

2008-07-08 Thread David Moss
Take a look at 

 

http://docs.tinyos.net/index.php/MTS400

 

We do not actively support this project, but lots of work has been done for
you to pick it up and keep going.  

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Antonio
Prados Vilchez
Sent: Tuesday, July 08, 2008 8:51 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] MTS400

 

 

Hi TinyOS users!!

Is there a driver to use the MTS400 sensorboard with the MICAz mote? In case
not, how could I measure temperature, light and humidity from this board? I
need some information about it, does the ADC in the sensorboard have an I2C
interface or is it easier than that?

And... Is there a driver for the MDA100 board? Should I access to the ADC in
the MDA100 through an I2C interface?

Thanks in advance. 

 


 

  _  


Este mensaje se dirige exclusivamente a su destinatario, y puede contener
información confidencial sometida a secreto profesional, o cuya divulgación
esté legalmente prohibida.Cualquier opinión en él contenida es exclusiva de
su autor y no representa necesariamente la opinión de la empresa. Si ha
recibido este mensaje por error, le rogamos nos lo comunique de forma
inmediata por esta misma vía y proceda a su eliminación, así como a la de
cualquier documento adjunto al mismo. El correo electrónico vía Internet no
es seguro y no se puede garantizar que no haya errores ya que puede ser
interceptado, modificado, perdido o destruido, o contener virus. Cualquier
persona que se ponga en contacto con nosotros por correo electrónico se
considerará que asume estos riesgos.

This e-mail is addressed exclusively to the recipient and may contain
privileged information under a professional confidential agreement or it may
be against the law to disclose its contents. Any opinion contained in it
belongs exclusively to his/her author and does not necessarily reflect the
company's view. If you receive this e-mail in error, please let us know
immediately (by return e-mail) and proceed to its destruction, as well as
any document attached to it. The sending of e-mails through the Internet is
not safe and, therefore, error-free communications cannot be guaranteed, as
they can be intercepted, changed, misled or destroyed or they might contain
a virus. Any user contacting us through e-mails shall be understood to be
assuming these risks.

  _  

 

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

Re: [Tinyos-help] cc2420 transmission delay ( backoff times)

2008-06-13 Thread David Moss
There are no backoffs when transmitting an acknowledgment.  Even if the ack
is transmitted instantaneously to the receiver, it still takes time to
download and process the acknowledgment from the RXFIFO.  

 

The ack wait period was chosen experimentally in an environment with
multiple transmitters.  The more transmitters, the more likely the ack
reception will be delayed by some significant amount.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jun
Sent: Friday, June 13, 2008 1:41 PM
To: renjie huang
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] cc2420 transmission delay ( backoff times)

 

I think it's mainly due to software-ACK and the congestion backoff mentioned
by Phil.

Jun

On Fri, Jun 13, 2008 at 12:10 PM, renjie huang [EMAIL PROTECTED]
wrote:

i have a question. Why do CC2420 need to wait for hardware ACK for such a
log time? It should be very fast.

On 5/28/08, Jongkeun Na [EMAIL PROTECTED] wrote: 

On Wed, May 28, 2008 at 2:06 AM, salvatore galati [EMAIL PROTECTED]
wrote:

ack wait time of 256 jiffies = 3,84 msec


isn't one jiffy 32us? if so, the ack wait time should be 8.192ms.

-- 
Jongkeun 

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




-- 
Renjie Huang
Sensorweb Research Laboratory 
http://sensorweb.vancouver.wsu.edu/
Washington State University 
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help




-- 
--
Mailto: [EMAIL PROTECTED] 

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

Re: [Tinyos-help] DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

2008-06-03 Thread David Moss
Hi Jongkeun -

 

Good observation.  

 

Sending an RTS / CTS to stop transmissions from other nodes is a good idea.
I have two initial concerns about this approach, but maybe it should be
studied a little more to confirm or deny these:  1) I'm concerned about the
dependency on the link-layer to prevent phy-layer collisions, especially
when we're dealing with such low power and somewhat long transmission
distances that cause packets to be easily corrupted.  2) I'm concerned about
the excess transmissions taking place to get a single packet through, and
the impact on reliability and energy savings.  

 

802.11's virtual sensing approach, from what I understand, works well
especially because the transmission rates are high and the transmitters have
access to mains power.  In this case, getting a single packet through with
an RTS / CTS requires at least 3 packets to be exchanged:  RTS / CTS / Data.
Transmissions are typically the largest energy consumer of any operation on
the node.  If one of those packets gets dropped, it will have to be
retransmitted.  Other nodes will also have to back off somehow to prevent
collision if they miss the CTS packet, which brings us back down to
PHY-layer collision avoidance.  

 

If you don't want to rely on the radio hardware to prevent collisions (and
save energy by leaving the radio off), I think you'd be talking more about a
TDMA solution.  This is totally possible, but requires accurate clock
management and synchronization between nodes.  The RF230 implementation is
pioneering some really nice synchronization protocols that would make
something like that more possible, at least across homogeneous platforms.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Monday, June 02, 2008 9:29 PM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

 

It sounds like a sort of virtual carrier sensing. How about introducing a
thing like NAV of 802.11 for a packetized wake-up transmission as a general
approach? do you think it is worth to introduce such a virutal carrier
sensing mechansim for LPL based sensor networks? if so, is it possible to
implement it without an aid of radio H/W?

Thanks,
Jongkeun 

On Fri, May 30, 2008 at 9:17 AM, David Moss [EMAIL PROTECTED] wrote:

Yes, in fact, this is what I'm implementing on the CC1100 and CC2500 radio
stacks.  The trick is getting the transmit branch of the radio stack to hold
off for awhile if a packet was recently received.  This allows one node to
completely dominate the channel while it sends back-to-back packets with
acknowledgment gaps in between.  Packet delivery and acknowledgment success
rate goes up, collisions go down, and energy efficiency goes way up.  

 

So far, this seems to work very reliable on my desk.  I have yet to test it
outside or in a real network, where any number of issues may come into play.

 

-David

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Thursday, May 29, 2008 7:24 PM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

 

Thank you David for your detailed explanation.
I fully agree with you regarding safety and robustness for applications.

One more question, looking at the initial backoff (0x4) and congestion
backoff (0x3) applied in the packetized wake-up transmission, I'm wondering
there is any theory in choosing those backoff constants. What's the backoff
strategy? intentionally to allow multiple wake-up transmissions mixed at the
same time. What if we allows only one wake-up transmission at a time in
medium by treating separately the first packet and the following resended
packets in the packet train, i.e. the standard backoff is applied for the
first packet and almost 0 backoff is used for the resended packets. Do you
have any history or experience?

Thanks,
Jongkeun

On Thu, May 29, 2008 at 8:54 AM, David Moss [EMAIL PROTECTED] wrote:

Hi Jongkeun,

 

The DELAY_AFTER_RECEIVE is not the length of a CCA receive check.  The
receive check is currently implemented through polling the CCA pin a number
of times in PowerCycleP.  This polling method will be transformed into an
alarm/interrupt receive check for greater accuracy and efficiency, as soon
as someone has time to do it.  The goal of the receive check is to be as
short as possible, and is the length of the time between packets in a
packetized wake up transmission strategy.  I've had these receive check
perform reliably at 5 ms or less, but the current implementation makes the
receive check last ~11 ms for reliability across everyone's systems and
platforms.  Only after activity is detected - either by transmitting a
packet or receiving a packet - does the radio remain on for the time defined
by DELAY_AFTER_RECEIVE, which is currently 100 ms.

 

You'll notice the DELAY_AFTER_RECEIVE is #ifdef'd

Re: [Tinyos-help] about the metadata of cc2420

2008-06-02 Thread David Moss
The metadata contains information about the packet that is used by the radio
stack.  Like you said, it is not transmitted as part of the packet, but
rather contains side-note information about the packet.

 

The metadata fields are all 0's at boot time, because they haven't been
initialized.  When you receive a packet, the buffer receiving the packet
doesn't have any of its metadata configured except the RSSI and LQI fields.
When you copy the metadata fields from your received packet to the payload
portion of a serial packet, seeing 0's in most of the fields is correct.

 

The timestamp should be the local relative time the packet was received,
which is the time the SFD (start frame delimiter) interrupt fired on the
radio chip when it began to receive a packet.

 

The RSSI and LQI fields reflect those values while the packet was being
received.  At that time, there is a transmitter nearby, so you'll see lots
of energy on the channel.  The RssiToSerial application monitors the RSSI at
any time - and the values you read mostly occur when a transmitter is not on
the channel.  In those cases, you'll be reading the energy of the noise
floor.

 

When the radio receives a packet, it will automatically fill in the RSSI and
LQI fields in the metadata for that packet.  If you want to read the RSSI
values when the radio is not receiving a packet, you would use
CC2420ControlC's ReadRssi interface.  LQI values are only available when
receiving a packet.

 

-David

 

 

 

  _  

From: jiwen zhang [mailto:[EMAIL PROTECTED] 
Sent: Monday, June 02, 2008 8:11 AM
To: David Moss
Subject: about the metadata of cc2420

 

Hello David : 

   as we know , the metadata is not sended when we use the command
AMSend.send to send a packet . Can you explain  the function of the metadata
? 

 

  i see some codes of cc2420 driver . are  all fields of metadata given an
significative value ? such as rssi , lqi and so on ? 

 

i put the metadata in the payload when i receive a packet and send the
packet to serial port in order to see what the values are . i find
rxInterval,maxRetries and retryDelay are equal to zero . are they right ? 

and the time field is some strange value , for example , every second , i
send a packet , the value of time field i receive are 3e 43 , ac 4d , 1a 27
, 88 46 ... , i don't know how do they figure out in the implemention of
cc2420 driver .

 

the rssi value i get (i use the interface CC2420PacketBody)  is E5 or E9
when there is only one sender and one receiver . it is different with the
value i get by the application of /apps/tests/cc2420RssiToSerial whose value
is about 4A ,4B or 4C,  why ? how do these value get in the implemention  of
cc2420 driver ? read from the specified register ? and what about lqi ? (the
value i get is about 6B or 6C , and also one sender , one receiver ) 

 

 typedef nx_struct cc2420_metadata_t {
  nx_uint8_t rssi;
  nx_uint8_t lqi;
  nx_uint8_t tx_power;
  nx_bool crc;
  nx_bool ack;
  nx_uint16_t time;
  nx_uint16_t rxInterval;

  /** Packet Link Metadata */
#ifdef PACKET_LINK
  nx_uint16_t maxRetries;
  nx_uint16_t retryDelay;
#endif

} cc2420_metadata_t;

-- 
zhang jiwen 

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

Re: [Tinyos-help] DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

2008-05-30 Thread David Moss
Yes, in fact, this is what I'm implementing on the CC1100 and CC2500 radio
stacks.  The trick is getting the transmit branch of the radio stack to hold
off for awhile if a packet was recently received.  This allows one node to
completely dominate the channel while it sends back-to-back packets with
acknowledgment gaps in between.  Packet delivery and acknowledgment success
rate goes up, collisions go down, and energy efficiency goes way up.  

 

So far, this seems to work very reliable on my desk.  I have yet to test it
outside or in a real network, where any number of issues may come into play.

 

-David

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Thursday, May 29, 2008 7:24 PM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

 

Thank you David for your detailed explanation.
I fully agree with you regarding safety and robustness for applications.

One more question, looking at the initial backoff (0x4) and congestion
backoff (0x3) applied in the packetized wake-up transmission, I'm wondering
there is any theory in choosing those backoff constants. What's the backoff
strategy? intentionally to allow multiple wake-up transmissions mixed at the
same time. What if we allows only one wake-up transmission at a time in
medium by treating separately the first packet and the following resended
packets in the packet train, i.e. the standard backoff is applied for the
first packet and almost 0 backoff is used for the resended packets. Do you
have any history or experience?

Thanks,
Jongkeun



On Thu, May 29, 2008 at 8:54 AM, David Moss [EMAIL PROTECTED] wrote:

Hi Jongkeun,

 

The DELAY_AFTER_RECEIVE is not the length of a CCA receive check.  The
receive check is currently implemented through polling the CCA pin a number
of times in PowerCycleP.  This polling method will be transformed into an
alarm/interrupt receive check for greater accuracy and efficiency, as soon
as someone has time to do it.  The goal of the receive check is to be as
short as possible, and is the length of the time between packets in a
packetized wake up transmission strategy.  I've had these receive check
perform reliably at 5 ms or less, but the current implementation makes the
receive check last ~11 ms for reliability across everyone's systems and
platforms.  Only after activity is detected - either by transmitting a
packet or receiving a packet - does the radio remain on for the time defined
by DELAY_AFTER_RECEIVE, which is currently 100 ms.

 

You'll notice the DELAY_AFTER_RECEIVE is #ifdef'd, so you can override it.
I agree, 50 ms - or even 20 ms - is a better value for leaving the radio on
after activity.  The 100 ms value was chosen because highly congested
networks need further optimization with the packetized wake up transmission
in the default low power communication implementation.   In fact, we need to
connect a bunch of nodes to a logic analyzer to 1) improve acknowledgment
success rate, 2) decrease packet collisions, and 3) optimize these timing
values before it will make sense to decrease that value for the entire
community. 

 

Right now the emphasis is on safety and robustness on everyone's
applications.  Once the items above are solved, we should be able to safely
improve energy consumption while maintaining this level of robustness.

 

-David

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Wednesday, May 28, 2008 4:02 PM
To: David Moss; tinyos-help@millennium.berkeley.edu
Subject: DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

 

Hi David,

I have a question about a parameter used in CC2420 LPL module. 

* DELAY_AFTER_RECEIVE=100ms defined in DefaultLpl.h
This value is used to stretch the radio's ON time after receiving or sending
a packet, and also detecting some CCAs at check time. I think that the cca
detection related delay time should be seperated with the first two cases
(after sending/receiving). If CCA detection is a false positive meaning that
no packet is being transmitted to node, keeping radio ON during 100ms is too
wasteful when we use a short check interval such as 100ms. Even though we
use a shorter delay time such as 50ms, according to my experiment, there is
no problem because radio is supposed to receive a packet after detecting
CCAs, otherwise the radio should be OFF right after waiting an expected time
for packet reception. I do not feel 100ms should be sticked for this case, a
shorter delay would be fine if it is enough to guarrantee the packet
reception at valid CCA detection.  Am I missing something?

Thanks,
-- 
Jongkeun 




-- 
Jongkeun 

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

Re: [Tinyos-help] DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

2008-05-29 Thread David Moss
Hi Jongkeun,

 

The DELAY_AFTER_RECEIVE is not the length of a CCA receive check.  The
receive check is currently implemented through polling the CCA pin a number
of times in PowerCycleP.  This polling method will be transformed into an
alarm/interrupt receive check for greater accuracy and efficiency, as soon
as someone has time to do it.  The goal of the receive check is to be as
short as possible, and is the length of the time between packets in a
packetized wake up transmission strategy.  I've had these receive check
perform reliably at 5 ms or less, but the current implementation makes the
receive check last ~11 ms for reliability across everyone's systems and
platforms.  Only after activity is detected - either by transmitting a
packet or receiving a packet - does the radio remain on for the time defined
by DELAY_AFTER_RECEIVE, which is currently 100 ms.

 

You'll notice the DELAY_AFTER_RECEIVE is #ifdef'd, so you can override it.
I agree, 50 ms - or even 20 ms - is a better value for leaving the radio on
after activity.  The 100 ms value was chosen because highly congested
networks need further optimization with the packetized wake up transmission
in the default low power communication implementation.   In fact, we need to
connect a bunch of nodes to a logic analyzer to 1) improve acknowledgment
success rate, 2) decrease packet collisions, and 3) optimize these timing
values before it will make sense to decrease that value for the entire
community. 

 

Right now the emphasis is on safety and robustness on everyone's
applications.  Once the items above are solved, we should be able to safely
improve energy consumption while maintaining this level of robustness.

 

-David

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Wednesday, May 28, 2008 4:02 PM
To: David Moss; tinyos-help@millennium.berkeley.edu
Subject: DELAY_AFTER_RECEIVE in CC2420 Low Power Listening

 

Hi David,

I have a question about a parameter used in CC2420 LPL module. 

* DELAY_AFTER_RECEIVE=100ms defined in DefaultLpl.h
This value is used to stretch the radio's ON time after receiving or sending
a packet, and also detecting some CCAs at check time. I think that the cca
detection related delay time should be seperated with the first two cases
(after sending/receiving). If CCA detection is a false positive meaning that
no packet is being transmitted to node, keeping radio ON during 100ms is too
wasteful when we use a short check interval such as 100ms. Even though we
use a shorter delay time such as 50ms, according to my experiment, there is
no problem because radio is supposed to receive a packet after detecting
CCAs, otherwise the radio should be OFF right after waiting an expected time
for packet reception. I do not feel 100ms should be sticked for this case, a
shorter delay would be fine if it is enough to guarrantee the packet
reception at valid CCA detection.  Am I missing something?

Thanks,
-- 
Jongkeun 

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

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 TXFIFO.writeDone

2008-05-16 Thread David Moss
I've never experienced an error in the writeDone() event.  The error codes
are documented in tos/types/TinyError.h.  An error_t is typedef'd to a
uint8_t.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Paolo
Sent: Friday, May 16, 2008 8:41 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] About TXFIFO.writeDone

 

Hello
A question about TXFIFO.writedone provided by CC2420TransmitP.

async event void TXFIFO.writeDone( uint8_t* tx_buf, uint8_t tx_len, error_t
error ) 

What values can take the error_t variable ?

Thanks 

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

Re: [Tinyos-help] About TXFIFO.writeDone

2008-05-16 Thread David Moss
Not sure if the error is ever FAIL.  It's generated from the underlying
platform's SPI driver, not the CC2420 chip.  The error code is always
SUCCESS in writeDone() from my experience.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Paolo
Sent: Friday, May 16, 2008 9:15 AM
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] About TXFIFO.writeDone

 

Explaining better...

the error_t == FAIL  When can occur (What could have happened in FIFO) ? 

Paolo wrote: 

Hello
A question about TXFIFO.writedone provided by CC2420TransmitP.

async event void TXFIFO.writeDone( uint8_t* tx_buf, uint8_t tx_len, error_t
error ) 

What values can take the error_t variable ?

Thanks 

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

Re: [Tinyos-help] About CC2420Receive

2008-05-15 Thread David Moss
We miss a packet if the receive interrupt fires and we can't service it.
I'm not sure how often this really occurs because the code was left over
from earlier implementations.  The m_missed_packets variable indicates how
many receive interrupts fired that we haven't handled.

 

The 0-byte received packet length is an edge case that occurs all the time.
Removing the 0-byte packet handler may cause your node to lock up.  At least
it used to.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Paolo
Sent: Thursday, May 15, 2008 7:39 AM
To: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] About CC2420Receive

 

ERRATA CORRIGE:

When this case (else code) occurs (practically/physically)?

else 
{
// Length == 0; start reading the next packet
atomic receivingPacket = FALSE;
call CSN.set();
call SpiResource.release();
waitForNextPacket();
}
  
Sorry

Paolo wrote: 

Hello,
Some questions about CC2420ReceiveP

1.  the m_missed_packets variable is a  REAL number of packets we missed
because we were doing something else ?
2.  When this case (else code) occurs (practically/physically)?

  else 
{
// Length is too large; we have to flush the entire Rx FIFO
flush();
m_overflow_packets++;//lost packets for length  40
Bytes
}

thanks Paolo.



 





  _  



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

Re: [Tinyos-help] how to determine SACK packet

2008-05-15 Thread David Moss
The FCF word contains a few bits that indicate the type of frame is an
acknowledgment frame.  It is possible to receive a 5-byte packet that is not
an ack frame but simply noise, where the CRC passes.  If the FCF word of a
packet is an acknowledgment type, and the length is 5 bytes, then you
probably have yourself a real acknowledgment frame.  Refer to the CC2420
datasheet for more details.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Paolo
Sent: Thursday, May 15, 2008 1:32 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] how to determine SACK packet

 

Hello,
How i can determine if a packet in RX fifo is a SACK packet ?
If the cc2420_header_t-length is 5 bytes (2B FCF + 1B DSN + 2B FCS) i can
say that is a SACK packet ?

Thanks.

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

Re: [Tinyos-help] how to determine SACK packet

2008-05-15 Thread David Moss
The SACK_HEADER_LENGTH constant in the receive branch refers to the position
in the data frame (non-ack packet) at which we can safely issue an
acknowledgment.  This position is in the header of a normal packet:

 

 

typedef nx_struct cc2420_header_t {

  nxle_uint8_t length;

  nxle_uint16_t fcf;  - 2

  nxle_uint8_t dsn;  - 1

  nxle_uint16_t destpan; -2

  nxle_uint16_t dest; -2

  ...

 

2 + 1 + 2 + 2 = 7.

 

When we have this much information downloaded, we can safely issue a SACK.

 

-David

 

 

 

  _  

From: Paolo [mailto:[EMAIL PROTECTED] 
Sent: Thursday, May 15, 2008 10:54 AM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] how to determine SACK packet

 

Thanks David

another question: the SACK_HEADER_LENGTH variables is set to 7 byte, Why ?

FCF (2B) +  DSN(1B) +  FCS (2B) = 5B ???

David Moss wrote: 

The FCF word contains a few bits that indicate the type of frame is an
acknowledgment frame.  It is possible to receive a 5-byte packet that is not
an ack frame but simply noise, where the CRC passes.  If the FCF word of a
packet is an acknowledgment type, and the length is 5 bytes, then you
probably have yourself a real acknowledgment frame.  Refer to the CC2420
datasheet for more details.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Paolo
Sent: Thursday, May 15, 2008 1:32 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] how to determine SACK packet

 

Hello,
How i can determine if a packet in RX fifo is a SACK packet ?
If the cc2420_header_t-length is 5 bytes (2B FCF + 1B DSN + 2B FCS) i can
say that is a SACK packet ?

Thanks.

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

Re: [Tinyos-help] Low Power Listening

2008-05-13 Thread David Moss
Your node has a local sleep interval defining how often the radio wakes up
to perform a receive check.

Other nodes in the vicinity may have different sleep intervals.  For
example, maybe you have a node nearby that is not actually part of your
network and is awake all the time.

It would be bad to assume that every node around your node is on the same
sleep schedule.  Therefore, your node must specify the destination's sleep
interval before sending the packet, which may be different than your local
sleep interval.  That way the radio stack will know how to deliver the
packet to its intended destination.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Nitin
Sharma
Sent: Tuesday, May 13, 2008 11:08 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Low Power Listening

For Low Power Listening in the default Tinyos 2.x cvs stack
(Box-MAC-2?) , the two interfaces as below:

command void setLocalSleepInterval(uint16_t sleepIntervalMs);
command void setRxSleepInterval(message_t *msg, uint16_t sleepIntervalMs);

The Node (Receiver and Transmitter) would set its local sleep interval
from the first command. The Receiver of course, if is peer-to-peer
synchronized following the same sleep interval would be awake at that
interval for receive check ? Why do we need to set the interval on the
packet we're sending?

Please let me understand.

Thanks

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


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


Re: [Tinyos-help] Low Power Listening

2008-05-13 Thread David Moss
I've updated this wiki doc:

The transmitter stops sending once it receives a link-layer acknowledgment
or a timeout. The timeout is a few milliseconds longer than the receiver's
check period.

We no longer transmit for twice the receive check period because receive
check reliability has increased since 2.0.1.

Worst case is your transmitter will transmit for a few milliseconds longer
than the destination's receive check period.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Nitin
Sharma
Sent: Tuesday, May 13, 2008 12:58 PM
To: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Low Power Listening

Thanks Janos and David.

I have got yet another query.

So i assume, the transmitter could decide to send as soon as it has a
packet to send and the radio is on .And keep on retransmitting (within
the receive check period interval ) unless acked or timeout.

http://docs.tinyos.net/index.php/Writing_Low-Power_Applications says
The transmitter stops sending once it receives a link-layer
acknowledgment or a timeout of twice the check period.

My concern is for a recipient with a relatively longer schedule. Does
it keep on retrying for twice the check period in the worst case? Any
insight into how many retransmissions?

Thanks again.

Nitin


On Tue, May 13, 2008 at 1:46 PM, David Moss [EMAIL PROTECTED] wrote:
 Your node has a local sleep interval defining how often the radio wakes up
  to perform a receive check.

  Other nodes in the vicinity may have different sleep intervals.  For
  example, maybe you have a node nearby that is not actually part of your
  network and is awake all the time.

  It would be bad to assume that every node around your node is on the same
  sleep schedule.  Therefore, your node must specify the destination's
sleep
  interval before sending the packet, which may be different than your
local
  sleep interval.  That way the radio stack will know how to deliver the
  packet to its intended destination.

  -David




  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of Nitin
  Sharma

 Sent: Tuesday, May 13, 2008 11:08 AM
  To: tinyos-help@millennium.berkeley.edu
  Subject: [Tinyos-help] Low Power Listening



 For Low Power Listening in the default Tinyos 2.x cvs stack
  (Box-MAC-2?) , the two interfaces as below:

  command void setLocalSleepInterval(uint16_t sleepIntervalMs);
  command void setRxSleepInterval(message_t *msg, uint16_t
sleepIntervalMs);

  The Node (Receiver and Transmitter) would set its local sleep interval
  from the first command. The Receiver of course, if is peer-to-peer
  synchronized following the same sleep interval would be awake at that
  interval for receive check ? Why do we need to set the interval on the
  packet we're sending?

  Please let me understand.

  Thanks

  --
  Nitin Sharma


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






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


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


Re: [Tinyos-help] TinyOS Search Engine

2008-05-01 Thread David Moss
This is good stuff.  I suggest creating a link to this on
http://docs.tinyos.net http://docs.tinyos.net/  if it hasn't been done
already.

-David

 



  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Joey
Wilson
Sent: Wednesday, April 30, 2008 6:08 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] TinyOS Search Engine

 

Hello Everyone,

I created a TinyOS search engine that I thought might be useful for people
in finding help and info that has already been posted online.  The nice
thing about this search engine is that it only returns results that are
found on sites that are manually specified.  Here is a link so that you can
try it out for yourself.

http://www.google.com/coop/cse?cx=000490616372089452102%3Ajdf9nzpy7se

So far, I have specified the following site for inclusion in the results:

http://docs.tinyos.net/, http://webs.cs.berkeley.edu/tos/,
http://mail.millennium.berkeley.edu/pipermail/tinyos-help/,
http://mail.millennium.berkeley.edu/pipermail/tinyos/,
www.moteiv.com/community/TinyOS_Information

If I have left out any important sites that could be useful to include,
please let me know.  Thanks.

-Joey

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

Re: [Tinyos-help] Collection: Loosing Connection to a Node

2008-04-28 Thread David Moss
In creating the new CCxx00 radio stack's LPL/Wake-on Radio layer and testing
it for CTP, I found lots of issues with low power communications in general
that require lots of experimentation with the radio stack and a logic
analyzer.  Someone needs to do the same analysis on the CC2420 stack, and I
unfortunately don't have time to do it now.

Acknowledgments are the biggest problems.  Collisions are another problem,
but collisions ultimately feed into the acknowledgment problem.  If we can
avoid collisions and prevent each node from transmitting during an
acknowledgment period, network reliability will improve.

With the CCxx00 stack, I found it necessary to remove hardware address
recognition to improve the performance of acknowledgment success rate. I
forced each node to take time to receive every packet, and respect the
acknowledgment wait period if the packet was not destined for that
particular node.

I also added progressive backoffs to the CCxx00 stack, where the CSMA
backoff duration gets longer and longer as the channel is found to be busy.
This works well for long-preamble transmissions, but probably won't work as
well for packetized wake-up transmissions as is implemented for the CC2420.

The CCxx00 stack was tested for WoR reliability and efficiency by setting up
a small network of 4 nodes, each with a unique address (3, 2, 1, and 0).
Each node's LEDs were connected to a logic analyzer, allowing me to see when
a node was transmitting, receiving, and sending an acknowledgment.  Nodes
performed unicast transmissions: #3 transmitted to #2, #2 to #1, #1 to 0,
and 0 acted like a base station receiver that didn't transmit.  This setup
allowed me to experiment with different radio stack parameters and
functionality.  I could see, using the logic analyzer, that nodes
transmitted when they weren't supposed to (like during an acknowledgment
wait period) or two nodes would try to transmit simultaneously, causing a
collision. 

In CTP, I found it necessary to modify CtpForwardingEngine.h to set the
FORWARD_PACKET_TIME equal to some much larger value, like 512 or 1024, to
avoid network congestion.  Maybe we should find a way to tie this value to
the low power listening interval somehow.

CTP works great. But the radio stack underneath has to be reliable under
that kind of network congestion.  When the CC2420 LPL implementation was
created, most of the tests were point-to-point tests, and very few were
network congestion tests.  

Any modifications done to the CC2420 stack to improve this situation should
be contributed back to the TinyOS baseline.

-David


-Original Message-
From: Philip Levis [mailto:[EMAIL PROTECTED] 
Sent: Monday, April 28, 2008 10:40 AM
To: Bulut ERSAVAS
Cc: Omprakash Gnawali; David Moss; Atakan Bodur; tinyos-help (E-mail);
TinyOS Development
Subject: Re: [Tinyos-help] Collection: Loosing Connection to a Node


On Apr 28, 2008, at 9:25 AM, Bulut ERSAVAS wrote:
 Hi Phil  Omprakash,

 It appears that the LPL is to blame for the misbehavior of CTP in  
 our case. As Omprakash suggested, I repeated the tests by turning  
 off the LPL. Nodes quickly discovered routes and packet losses were  
 reduced dramatically.

 We later on retried with LPL but reduced our LPL sleep interval from  
 1000 ms to 125 ms. Attached you can find the logs. Node 7 is again  
 TelosB with debug logs. The performance is much better, however, is  
 not as sharp as it would be with no LPL. I would suspect that the  
 beacons or the acks are getting lost when the LPL is activated,  
 hence the poor route discovery process and the large amount of data  
 loss.

 When LPL is used, are the beacons timed for the LPL sleep interval?  
 For instance, we use setRxSleepInterval to set the receiving node's  
 sleep interval for data transmission. Is something similar done for  
 CTP beacons?

 Also, when CTP is used, ETX values are quite large. Even for a  
 single hop, it is about 265. You will notice ETX values as large as  
 700 with 3-hop routes. However, with no LPL it was usually less than  
 300 even for 6-hop routes. Can this be due to beacons/acks getting  
 lost with LPL?

 In summary, attached logs (4BITLE  LPL w/ 125ms interval) are much  
 better than the ones I sent last week (LE | 4BITLE  LPL w/ 1000ms  
 interval). But still, for an acceptable power consumption level, we  
 need to use 1000ms or larger sleep interval. So, in this case, is it  
 possible to improve CTP to better work with LPL? How can we assist  
 you in this process?

It might be useful to move this discussion over to -devel.

The first step for doing this was to reduce CTP's control traffic so  
that it can function well with LPL (early versions had high control  
load). We completed this work a few weeks ago, and Om has just checked  
the changes into CVS.

Now that CTP has a low control load, the next step is starting testing  
with LPL and figuring out what's going wrong and why. From your  
traces, it looks like LPL has a low

Re: [Tinyos-help] CCA for channel detection

2008-04-20 Thread David Moss
You don't need other nodes around for the hardware CCA to show the channel
is in use.  WiFi and other transmitters will cause energy and noise on the
channel.

 

An RSSI based approach is good for deciding the best channel to establish a
network, if you're trying to find a quiet channel.  Traverse all channels
and average up many samples of RSSI on each channel, then pick the channel
with the quietest average RSSI.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of renjie
huang
Sent: Sunday, April 20, 2008 4:17 PM
To: tinyos-help
Subject: [Tinyos-help] CCA for channel detection

 

Hi

 

I am trying to use CCA for a node to detect all radio channels around. If
CCA is false, then there may be some nodes transmitting packets on
corresponding channel. But in my test there has some problem. When a node
uses a channel , eg 11, while no other nodes are around, it will report
channel 11 deteced. That means when the channel is not busy(no nodes are
transmitting, including itself), CCA also can be false.

 

for(ccaCheck = 0; ccaCheck  400; ccaCheck++)
  if(!call CC2420RadioControl.getCcaStatus())
  count++;
if(count  200)
 debug(DBG_ERR, channel =%i is detected \n, call
CC2420Control.GetPreset());
 

This seems that CCA is not relaible.  I don't know what is wrong with my
code. Any advice is appreciated. Thanks
-- 
Renjie Huang
Sensorweb Research Laboratory 
http://sensorweb.vancouver.wsu.edu/
Washington State University 

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

Re: [Tinyos-help] false CCA detection in LPL

2008-04-15 Thread David Moss
3 was chosen experimentally, and yes, you may need to jack it up if there is
a lot of other communication interference going on in your band.  Or, change
your channel.

 

-David

 

 

  _  

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jongkeun
Na
Sent: Tuesday, April 15, 2008 10:57 AM
To: tinyos-help@millennium.berkeley.edu
Cc: [EMAIL PROTECTED]
Subject: false CCA detection in LPL

 

Folks,

I've got false CCA detections in most of time when
MIN_SAMPLES_BEFORE_DETECTION=3 (defaultlpl.h). Anyone knows why this default
number is set a 3, or has any experience on a proper number in different
situations? based on my experience, false CCA detections still appear up to
12, finally I got okay when the number is 30. And I suspect also the number
is sensitive to which channel is used in what wireless environments are.

Thanks,
-- 
Jongkeun 

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

Re: [Tinyos-help] is it true?

2008-04-14 Thread David Moss
No.

 

The default CC2420 stack always uses CSMA.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of funofnet
Funofnet
Sent: Sunday, April 13, 2008 9:06 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] is it true?

 

Hi,

Please I whould like to know if I had truly undestand :

basically CC2420radio stack uses CSMA to acces to the channel but if we
active Low Power Listening then it uses TDMA .

Is it true?

 

Best regards,

Fun

 

  _  

Envoyé avec Yahoo!
http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http:/us.rd.yahoo.com/e
vt=52423/*http:/fr.docs.yahoo.com/mail/overview/index.html  Mail.
Une boite mail plus intelligente. 

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

Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2

2008-04-14 Thread David Moss
Manchester encoding.  And CSMA.

 

Manchester halves the throughput.  Instead of 76.8 kbps, Manchester will
force your radio to transmit at 38.4 kbps.  Getting rid of Manchester may
not be a simple task:  it's there to zero out the energy seen by a receiver,
so it can easily know that it's receiving valid data. 



CSMA causes your transmitter to share the channel with other transmitters,
and the channel checks may be spaced relatively far apart which dramatically
decreases throughput.

 

The CC1000 radio could be a really kick-ass radio if it were implemented
properly.  The ability to easily enable/disable Manchester, CSMA, etc.
(among other things) would really improve its situation.  The CC1000 radio
is much more energy efficient than the CC2420 radio, and can transmit a lot
farther than the CC2420 radio (but that broken matching network on mica2's
and especially mica2dot's really cause everyone problems).  It's unfortunate
so many people dismiss the CC1000 radio as obsolete, when it could really
outperform their radios in terms of efficiency and range (not throughput).

 

29 bytes is only a software (and RAM) limitation.  Increase it by doing a
CFLAGS+=-DTOSH_DATA_LENGTH=50 or something in your Makefile.  Removing
unnecessary fields from the CC1000 header will decrease the header:payload
ratio and increase payload throughput.

 

If you're thinking about rolling your own hardware, you should really be
using CC1100 or CC2500 radios for any wireless application that doesn't
require 802.15.4 compatibility:
http://docs.tinyos.net/index.php/CC1100/CC2500

 

-David

 

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Edgar
Charry
Sent: Monday, April 14, 2008 3:57 PM
To: [EMAIL PROTECTED]; Eric Keller
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2

 

Hi all, 
 
Thanks for your prompt replies. Unfortunately I that link didn't let me
through.
 
In fact I am still trying to undestand them, as I wasn't aware of that
limitation of 33-50ms of the Mica2's! You are saying that the maximum
bandwidth my app should require is 0-25Hz so that I have a nice
reconstruction of my wave, due to HW limitations? 
I knew that the CC1000 has a maximum bandwidth of 76.8kbps and of course due
to EEPROM readings/writings, CPU instructions, ADC's measurements etc. this
number should decrease. But I wasn't expecting a final bandwidth of
30pckts/s!!!  In fact, I thought there were problems related to the TOSBase.

My app requirement need at least 100Hz (Mica2's transmission needed thus 200
pckts/s), which is necessary to track a complete gait cycle using acc and
gyros with good definition.
 
What is the most critical factor in the Mica2's that blow the transmission
rate so bad? Does this happen with the Mica2Dot too? Data compression
(sample with a higher freq, store in the RAM and then send the whole bunch
of bytes) has a limitation of 29 bytes due to TinyOS, correct?
 
Thanks guys for the good info.
Cheers,
Edgar Charry

 Date: Mon, 14 Apr 2008 12:20:38 -0600
 From: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 CC: tinyos-help@millennium.berkeley.edu
 Subject: Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2
 
 Well, since people are quoting my second source messages, have a look at:
 http://www.etantdonnes.com/Motes/report_mica2/
 (which seems to be down right now but will hopefully be back soon...).
 
 However my message speed/reliability measurements use only the standard
 GenericComm and TOS1 code. I think the OP was trying to fiddle timeouts
 and backoffs to speed things up further. Data mining of the help list
 should turn up some more useful advice in this respect.
 
 MS
 
 Eric Keller wrote:
  There is a limit to how many packets you can send with a mica2 which you
are
  at or above. You probably want to lower your bandwidth requirements
somehow.
  See this message:
 
https://www.millennium.berkeley.edu/pipermail/tinyos-help/2008-April/032464.
html
  
  Eric
  
  
  On Mon, Apr 14, 2008 at 4:59 AM, Edgar Charry [EMAIL PROTECTED]
wrote:
  Hi all,
 
  I am trying to pump my packet transmission up between a Mica2Dot and a
  Mica2 to at least 200Hz [pckts/s].
 
  I've decreased the timer constant to a bottleneck of 33ms (30 pckts/s)
that
  pratically executes a round of ADC measurements and send the packet.
  Decreasing from this point doesn't give me more bandwidth. However, my
  packet is 14bytes long (the TinyOS header + just a couple of adc
  measurements + CRC).
 
  I suspect that this 33ms (parsed time stamps from XSniffer) are limited
to
  the TOSBase.nc on the Mica2. I suspect that the PLL of the Mica2 is
  listening through channels and is not locked to the transmitter's one.
Every
  loop thus should take 33ms.
 
  Actually, I haven't been through the CC1000 conf/mod components though,
but
  I reckon with your experience this can be solved easily.
  Cheers,
  Edgar Charry
 
  
  Explore 

Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2

2008-04-14 Thread David Moss
The CC2420 has some range, and while 40 feet is good for a 
CC2420 on the ground, it isn't a whole lot when you 
compare it to other radios.  With lower and lower 
frequencies, you can transmit much farther.  2.4 GHz gets 
eaten by the ground.  A CC1000 radio has the potential to 
get about 400-600 feet on the ground, and possibly 
further.

With a CC1100 radio, I'm able to reach 750 feet with nodes 
placed directly on grass, using wire antennas and 500 
kbps.  Lower that 500 kbps throughput and the range is 
extended even more.  This kind of range is physically 
impossible for a CC2420 radio, while being more energy 
efficient.  I like the CC2420 for improving ad-hoc 
networks and research, but it's time to move on to better 
radios.

-David



On Tue, 15 Apr 2008 00:09:02 -0400
  Eric Keller [EMAIL PROTECTED] wrote:
 That was an interesting page, but I'll disagree about 
the range of the CC2420,
 I'm getting over 40 feet of range, and my motes are 
actually buried in
 the floor.
 I'm pretty sure that doesn't help their range.
 Eric
 
 On Mon, Apr 14, 2008 at 9:28 PM, David Moss 
[EMAIL PROTECTED] wrote:
 
 If you're thinking about rolling your own hardware, you 
should really be
 using CC1100 or CC2500 radios for any wireless 
application that doesn't
 require 802.15.4 compatibility:
 http://docs.tinyos.net/index.php/CC1100/CC2500



 -David











  


 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On 
Behalf Of Edgar
 Charry
  Sent: Monday, April 14, 2008 3:57 PM
  To: [EMAIL PROTECTED]; Eric Keller
  Cc: tinyos-help@millennium.berkeley.edu


  Subject: Re: [Tinyos-help] Pumping up bandwidth - 
Mica2Dot/Mica2





 Hi all,

  Thanks for your prompt replies. Unfortunately I that 
link didn't let me
 through.

  In fact I am still trying to undestand them, as I 
wasn't aware of that
 limitation of 33-50ms of the Mica2's! You are saying 
that the maximum
 bandwidth my app should require is 0-25Hz so that I have 
a nice
 reconstruction of my wave, due to HW limitations?
  I knew that the CC1000 has a maximum bandwidth of 
76.8kbps and of course
 due to EEPROM readings/writings, CPU instructions, ADC's 
measurements etc.
 this number should decrease. But I wasn't expecting a 
final bandwidth of
 30pckts/s!!!  In fact, I thought there were problems 
related to the TOSBase.
  My app requirement need at least 100Hz (Mica2's 
transmission needed thus
 200 pckts/s), which is necessary to track a complete 
gait cycle using acc
 and gyros with good definition.

  What is the most critical factor in the Mica2's that 
blow the transmission
 rate so bad? Does this happen with the Mica2Dot too? 
Data compression
 (sample with a higher freq, store in the RAM and then 
send the whole bunch
 of bytes) has a limitation of 29 bytes due to TinyOS, 
correct?

  Thanks guys for the good info.
  Cheers,
  Edgar Charry

   Date: Mon, 14 Apr 2008 12:20:38 -0600
   From: [EMAIL PROTECTED]
   To: [EMAIL PROTECTED]
   CC: tinyos-help@millennium.berkeley.edu
   Subject: Re: [Tinyos-help] Pumping up bandwidth - 
Mica2Dot/Mica2
  
   Well, since people are quoting my second source 
messages, have a look at:
   http://www.etantdonnes.com/Motes/report_mica2/
   (which seems to be down right now but will hopefully 
be back soon...).
  
   However my message speed/reliability measurements use 
only the standard
   GenericComm and TOS1 code. I think the OP was trying 
to fiddle timeouts
   and backoffs to speed things up further. Data mining 
of the help list
   should turn up some more useful advice in this 
respect.
  
   MS
  
   Eric Keller wrote:
There is a limit to how many packets you can send 
with a mica2 which
 you are
at or above. You probably want to lower your 
bandwidth requirements
 somehow.
See this message:
   
 https://www.millennium.berkeley.edu/pipermail/tinyos-help/2008-April/032464.html
   
Eric
   
   
On Mon, Apr 14, 2008 at 4:59 AM, Edgar Charry 
[EMAIL PROTECTED]
 wrote:
Hi all,
   
I am trying to pump my packet transmission up 
between a Mica2Dot and a
Mica2 to at least 200Hz [pckts/s].
   
I've decreased the timer constant to a bottleneck 
of 33ms (30 pckts/s)
 that
pratically executes a round of ADC measurements 
and send the packet.
Decreasing from this point doesn't give me more 
bandwidth. However, my
packet is 14bytes long (the TinyOS header + just a 
couple of adc
measurements + CRC).
   
I suspect that this 33ms (parsed time stamps from 
XSniffer) are
 limited to
the TOSBase.nc on the Mica2. I suspect that the 
PLL of the Mica2 is
listening through channels and is not locked to 
the transmitter's one.
 Every
loop thus should take 33ms.
   
Actually, I haven't been through the CC1000 
conf/mod components
 though, but
I reckon with your experience this can be solved 
easily.
Cheers,
Edgar Charry
   

Explore the seven wonders of the world Learn

Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2

2008-04-14 Thread David Moss
I'm not sure if this applies to all mica2's, or just some older versions.
I'm also not sure about OEM's.  You'll have to screen yours nodes yourself
to see if this applies.  

Our experience (and we're not alone) has been that there was not a good
50-ohm impedance match on the passive network connecting the radio chip with
the antenna. Where there should be 50-ohm traces on the PCB, there is not.
This steals a few dB of output power, and significantly decreases range (you
double the range for every 3 dB, so even 3 dB less is half the range).  

Mica2Dot's are even worse: in an attempt to meet size specifications, the
matching network is split across two sides of a PCB. This is never a good
idea, because you may not be able to guarantee the reliability of the
radio's matching network.  With the matching network separated, small
manufacturing differences of the PCB can cause significant differences in RF
response from module to module.  And, mica2dot's don't have a sufficient
ground plane.

Finally, the curly-q loop thing added to the end of the wire antennas that
come with the mica2dot's are a bad idea.  This adds some unnecessary
horizontal polarization to the wave.  A vertically polarized wave is much
better. Horizontal polarization gets eaten quickly by the ground. Straighten
out those wire antennas, and add a ground plane.

-David


-Original Message-
From: Michael Schippling [mailto:[EMAIL PROTECTED] 
Sent: Monday, April 14, 2008 8:05 PM
To: David Moss
Cc: 'Edgar Charry'; 'Eric Keller'; tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2

YOW!!! Another information packed post (IPP).
Maybe we could start a radio theory page on our new improved doc site?
But what's that broken matching network mean?
MS


David Moss wrote:
 Manchester encoding.  And CSMA.
 
  
 
 Manchester halves the throughput.  Instead of 76.8 kbps, Manchester will 
 force your radio to transmit at 38.4 kbps.  Getting rid of Manchester 
 may not be a simple task:  it's there to zero out the energy seen by a 
 receiver, so it can easily know that it's receiving valid data.
 
 CSMA causes your transmitter to share the channel with other 
 transmitters, and the channel checks may be spaced relatively far apart 
 which dramatically decreases throughput.
 
  
 
 The CC1000 radio could be a really kick-ass radio if it were implemented 
 properly.  The ability to easily enable/disable Manchester, CSMA, etc. 
 (among other things) would really improve its situation.  The CC1000 
 radio is much more energy efficient than the CC2420 radio, and can 
 transmit a lot farther than the CC2420 radio (but that broken matching 
 network on mica2's and especially mica2dot's really cause everyone 
 problems).  It's unfortunate so many people dismiss the CC1000 radio as 
 obsolete, when it could really outperform their radios in terms of 
 efficiency and range (not throughput).
 
  
 
 29 bytes is only a software (and RAM) limitation.  Increase it by doing 
 a CFLAGS+=-DTOSH_DATA_LENGTH=50 or something in your Makefile.  Removing 
 unnecessary fields from the CC1000 header will decrease the 
 header:payload ratio and increase payload throughput.
 
  
 
 If you're thinking about rolling your own hardware, you should really be 
 using CC1100 or CC2500 radios for any wireless application that doesn't 
 require 802.15.4 compatibility: 
 http://docs.tinyos.net/index.php/CC1100/CC2500
 
  
 
 -David
 
  
 
  
 
  
 
  
 
  
 
 
 
 *From:* [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] *On Behalf Of 
 *Edgar Charry
 *Sent:* Monday, April 14, 2008 3:57 PM
 *To:* [EMAIL PROTECTED]; Eric Keller
 *Cc:* tinyos-help@millennium.berkeley.edu
 *Subject:* Re: [Tinyos-help] Pumping up bandwidth - Mica2Dot/Mica2
 
  
 
 Hi all,
  
 Thanks for your prompt replies. Unfortunately I that link didn't let me 
 through.
  
 In fact I am still trying to undestand them, as I wasn't aware of that 
 limitation of 33-50ms of the Mica2's! You are saying that the maximum 
 bandwidth my app should require is 0-25Hz so that I have a nice 
 reconstruction of my wave, due to HW limitations?
 I knew that the CC1000 has a maximum bandwidth of 76.8kbps and of course 
 due to EEPROM readings/writings, CPU instructions, ADC's 
 measurements etc. this number should decrease. But I wasn't expecting a 
 final bandwidth of 30pckts/s!!!  In fact, I thought there were problems 
 related to the TOSBase.
 My app requirement need at least 100Hz (Mica2's transmission needed thus 
 200 pckts/s), which is necessary to track a complete gait cycle using 
 acc and gyros with good definition.
  
 What is the most critical factor in the Mica2's that blow the 
 transmission rate so bad? Does this happen with the Mica2Dot too? Data 
 compression (sample with a higher freq, store in the RAM and then send 
 the whole bunch of bytes) has a limitation of 29 bytes due to TinyOS, 
 correct

RE: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

2008-04-07 Thread David Moss
The functionality you’re interested in - reliably link layer transmissions -
is included in the CC2420 radio stack in the PacketLink interface.  You can
add the PacketLink layer into the radio stack by adding
CFLAGS+=-DPACKET_LINK into your Makefile.  In your software, instead of
requesting an acknowledgment, setup a reliable packet transmission through
the PacketLink interface:

 

call PacketLink.setRetries(myMsg, 5);

call PacketLink.setRetryDelay(myMsg, 0);

 

This will automatically retry sending the packet 5 times, with no delays
between retransmissions.  When you get a sendDone() event back, you can
check to see if the packet was delivered either by calling
PacketAcknowledgments.wasAcked(myMsg); OR by calling
PacketLink.wasDelivered(myMsg);.

 

You are receiving multiple packets at the base station because
acknowledgments are just as unreliable as sending any packet.  If an
acknowledgement is dropped and you have to retransmit, then the base station
will receive duplicates.   The PacketLink layer, combined with UniqueSend
and UniqueReceive layers in the CC2420 stack, prevent duplicate packet
receptions due to dropped acknowledgments.  There is more documentation
here:
http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep1
27.html

 

Finally, there is already a delay built into the send for the acknowledgment
wait period, and you will not get a sendDone() event back until an ack was
received or the ack wait period timed out.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Juan
Antonio López Riquelme
Sent: Monday, April 07, 2008 9:33 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

 

Hello,

 

I am working with TinyOS 2.0.2 and payload of 29 bytes. Two remotes nodes
send messages to node with BaseStation application.

 

I changed BaseStation program to work with 29 bytes of payload and
acknowledgements. I compiled with address 0. In BaseStationP:

 

#include AM.h

#include Serial.h

#define TOSH_DATA_LENGTH 29//Added line

The Makefile:

COMPONENT=BaseStationC

#CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS

CFLAGS += -DCC2420_NO_ADDRESS_RECOGNITION

include $(MAKERULES)

The remote node requests an ack before to send the  message:

call ACK.requestAck(PaqueteDatos);

if (call EnviarDatos.send(0, PaqueteDatos, sizeof(MensajeDatos)) ==
SUCCESS)

And finally the code at sendDone event:

event void EnviarDatos.sendDone(message_t* msg, error_t error) 
{ 
if (PaqueteDatos == msg) 
{ 
enviarDatosBusy = FALSE;
enviados = enviados + 1;
 
if (!call ACK.wasAcked(msg)  intentos  REINTENTOS)
{
intentos = intentos + 1;
FuncionEnviarDatos();
}
else
{
//New iteration with the sensors
intentos = 0;
...
}
... 
} 
}
 

If the ack failed the program tries to send the message 5 times. At the
computer sometimes I get the same message twice. Can the program requiere a
delay between sendDone is signaled and check the acknowledgement?

 

Thanks, Juan Antonio.

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

RE: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

2008-04-07 Thread David Moss
Hi Juan –

 

According to your BaseStation makefile, you are disabling acknowledgments at
the base station. This would cause PacketLink to fail because PacketLink
requires the destination node to send back an acknowledgment.  Remove the
CC2420_NO_ACKNOWLEDGMENTS line from the BaseStation Makefile and recompile.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Juan
Antonio López Riquelme
Sent: Monday, April 07, 2008 1:45 PM
To: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

 

Hello,

 

Thank David for your answer.

 

I have implemented the new version with PacketLink. The messages arrive to
BaseStation, but wasDelivered failed. I know it because before a new
iterarion to read the sensors the program sends a message with three
variables: calls, inputs and dataSendDone. The program adds one to calls
when it call the fuction to send the data, inputs the same when the
execution is inside the function to send data and dataSendDone if
wasDelivery returns true.

 

For BaseStation I use this Makefile:

 

COMPONENT=BaseStationC
CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS
CFLAGS += -DCC2420_NO_ADDRESS_RECOGNITION
CFLAGS+=-DPACKET_LINK
include $(MAKERULES)
 

In the Makefile for remote sensor also I added the flag DPACKET_LINK. The
configuration for remote mote:

 

#include Timer.h
#include HP2.h
configuration HP2AppC{}
implementation
{
...
components CC2420ActiveMessageC; 
components new AMSenderC(AM_MENSAJEDATOS) as EnviarDatos;//Only I use
PacketLink with thsese messages
components new AMSenderC(AM_MENSAJEDATO) as EnviarDato;
components new AMSenderC(AM_MENSAJEBATERIA) as EnviarAlarma; 
components new AMReceiverC(AM_MENSAJEPERIODO);
..
App.Packet - EnviarDatos; 
App.AMPacket - EnviarDatos; 
App.EnviarDatos - EnviarDatos.AMSend;
App.EnviarDato - EnviarDato.AMSend;
App.EnviarAlarma - EnviarAlarma.AMSend; 
App.AMControl - CC2420ActiveMessageC;
App.PacketLink - CC2420ActiveMessageC;
App.Receive - AMReceiverC;
...
}

 

The module:

 

//In function to send data
...
call PacketLink.setRetries(PaqueteDatos, 10);
call PacketLink.setRetryDelay(PaqueteDatos, 100);
if (call EnviarDatos.send(0, PaqueteDatos, sizeof(MensajeDatos)) ==
SUCCESS)
...
//sendDone event
event void EnviarDatos.sendDone(message_t* msg, error_t error) 
{ 
if (PaqueteDatos == msg) 
{ 
enviarDatosBusy = FALSE;
if (call PacketLink.wasDelivered(msg)) dataSendDone = dataSendDone +
1; //The value is always the init value (0).
 
//There is a code below and it runs.
 
} 
}

 

Thanks in advance,

 

Juan Antonio.

- Original Message - 

From: David Moss mailto:[EMAIL PROTECTED]  

To: 'Juan mailto:[EMAIL PROTECTED]  Antonio López Riquelme' ;
tinyos-help@millennium.berkeley.edu 

Sent: Monday, April 07, 2008 8:05 PM

Subject: RE: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

 

The functionality you’re interested in - reliably link layer transmissions -
is included in the CC2420 radio stack in the PacketLink interface.  You can
add the PacketLink layer into the radio stack by adding
CFLAGS+=-DPACKET_LINK into your Makefile.  In your software, instead of
requesting an acknowledgment, setup a reliable packet transmission through
the PacketLink interface:

 

call PacketLink.setRetries(myMsg, 5);

call PacketLink.setRetryDelay(myMsg, 0);

 

This will automatically retry sending the packet 5 times, with no delays
between retransmissions.  When you get a sendDone() event back, you can
check to see if the packet was delivered either by calling
PacketAcknowledgments.wasAcked(myMsg); OR by calling
PacketLink.wasDelivered(myMsg);.

 

You are receiving multiple packets at the base station because
acknowledgments are just as unreliable as sending any packet.  If an
acknowledgement is dropped and you have to retransmit, then the base station
will receive duplicates.   The PacketLink layer, combined with UniqueSend
and UniqueReceive layers in the CC2420 stack, prevent duplicate packet
receptions due to dropped acknowledgments.  There is more documentation
here:
http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep1
27.html

 

Finally, there is already a delay built into the send for the acknowledgment
wait period, and you will not get a sendDone() event back until an ack was
received or the ack wait period timed out.

 

-David

 

 

 


  _  


From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Juan
Antonio López Riquelme
Sent: Monday, April 07, 2008 9:33 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Problems with ACKs in TinyOS 2.0.2

 

Hello,

 

I am working with TinyOS 2.0.2 and payload of 29 bytes. Two remotes nodes
send messages to node with BaseStation application.

 

I changed BaseStation program to work with 29 bytes of payload and
acknowledgements. I compiled with address 0. In BaseStationP:

 

#include AM.h

#include Serial.h

#define TOSH_DATA_LENGTH

RE: [Tinyos-help] Disable backoff CC2420 tmote sky

2008-04-04 Thread David Moss
The proper way to disable CCA is to tell the radio to transmit without CCA.

I don't support Tinyos 1.x, but if you look for a strobe command like
STXONCCA and change it to STXON then the radio will not use clear
channel assessments and there should never be a congestion backoff.  The
initial backoff should still be in play, and you will probably need to edit
the radio stack code to properly and completely remove it.

-David




-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Bhavish
Aggarwal
Sent: Thursday, April 03, 2008 5:05 PM
To: tinyos-help
Subject: [Tinyos-help] Disable backoff CC2420 tmote sky

Hi,

I too tried the same solution for disabling backoffs i.e. setting the
value of the events initialBackoff and congestionbackoff to 0 and 1 in
CC2420RadioM. But it did not make any perceivable difference in the
time taken for a packet to be transmitted (the time difference between
the send call and sendDone signal). This time was 6 ms before and
after turning off backoff.

Is there something I missed in this procedure?

Thanks,

Bhavish

On Thu, Jan 24, 2008 at 7:31 PM, shamo [EMAIL PROTECTED] wrote:




 Dear Sir,

 I just read David's answer about how to disable backoff.I use tmote sky.As
 he said, I connect CC2420RadioM to MacBackoff, and write
initialBackoff(...)
 and congestionBackoff(...) event to return 0 or 1. However, it does not
 work. It seems that I can not disable the backoff in this way.I do not
know
 why.Please give me a help. Can you give me an example?


 Your answer:---
 TinyOS 1.x:

 configuration CC2420RadioC
 {
   provides {
 ...
 interface MacControl;
 interface MacBackoff;
 ...
   }
 }


 interface MacBackoff
 {
   async event int16_t initialBackoff(TOS_MsgPtr m);
   async event int16_t congestionBackoff(TOS_MsgPtr m);
 }

 Connect to MacBackoff, and when you get an initialBackoff(...) or
 congestionBackoff(...) event, return 0 or 1.  This method wasn't very
 friendly for systems that wanted to specify different backoff periods for
 different outbound AM types.  With extra programming, you can get the
event
 to set the backoff as you want it for any outbound message.

 -David

 -

  




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

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


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


RE: [Tinyos-help] Receive Indicator

2008-04-02 Thread David Moss
The indicators in the CC2420 stack are used for low power listening
strategies.  In this case, the byte indicator is high when the radio is
receiving bytes, and low when the radio is not receiving bytes: it follows
the SFD line exactly, and produces the same result whether you're
transmitting or receiving.  There is another physical indicator,
EnergyIndicator, and a link level indicator, PacketIndicator available in
the CC2420 stack.  I think the EnergyIndicator is the only one being used
right now.  No documentation exists, this is purely for development and
experimentation.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Nitin
Sharma
Sent: Wednesday, April 02, 2008 5:57 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Receive Indicator

 

I was reading through when i got stuck in this. 

 /** Byte reception/transmission indicator */
  bool sfdHigh;

ByteIndicator returns sfdHigh ?

CC2420TransmitC 
ByteIndicator.isReceiving( ) , what does it return on
reception and what on transmission? (Sorry , couldn't find the
documentation)

CC2420ReceiveC 
   PacketIndicator.isReceiving( ) 

Whats the difference on Receive Detection using above i.e  Reception from
TransmitC or Reception from ReceiveC ( More generally, byte / packet )

Thanks.
Nitin Sharma 

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

RE: [Tinyos-help] SACK

2008-03-17 Thread David Moss
From the datasheet:

 

Two command strobes, SACK and

SACKPEND are defined to transmit

acknowledge frames with the frame

pending field cleared or set, respectively.

The acknowledge frame is only

transmitted if the CRC is valid.

 

 

The CRC is checked in hardware before the acknowledgment frame is
transmitted.


-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of renjie
huang
Sent: Sunday, March 16, 2008 2:12 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] SACK

 

It seems that in TinyOS-2.x for CC2420 SACK strobe is issued when
SACK_HEADER_LENGTH bytes of data is received and address check is passed. In
this way it does not check crc before issuing SACK. Is it reliable enough?
Why don't we wait until the whole packet is received from RXFIFO?  If I want
to issue SACK strobe only after receiving the whole packet from RXFIFO, is
there something I should be careful? Thanks.

-- 
 
  Renjie 

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

RE: [Tinyos-help] Can anyone help me clarify the MicaZ (CC2420) radiostack?

2008-03-17 Thread David Moss
The CC1000 and CC2420 radios are completely different, with no relation to
each other.

 

Disabling CCA is easy to do in TinyOS 2.x: you just capture requestCca()
event in the RadioBackoff interface, provided by CC2420CsmaC, and call back
within that event to setCca(FALSE).

 

TinyOS 1.x is no longer supported; however, you will be able to disable the
CCA backoffs by searching and replacing any instance of STXONCCA with
STXON in any CC2420 source code.

 

-David

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ruoshui
Liu
Sent: Sunday, March 16, 2008 4:56 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Can anyone help me clarify the MicaZ (CC2420)
radiostack?

 

Dear all,

Currently I am working on the MicaZ using CC2420 radio stack, and I am
trying to completely disable the CCA function implemented by CC2420 radio
stack. However, I did not find the right function to do so. Therefore, I
went through the Mica High Speed Radio Stack and the Mica2 (CC1000) Radio
Stack stated on the web: http://www.tinyos.net/tinyos-1.x/doc/. 

The question is what is the difference between the Mica2 (CC1000) Radio
Stack and the Mica High Speed Radio Stack. Is the Mica2 (CC1000) Radio Stack
totally different deign from the Mica High Speed Radio Stack, or interleaved
design with it? They really confuse me!

The other question is that where I can find the detail of MicaZ (CC2420)
Radio Stack implemented with TinyOS 1.1.15. I know there is an article
describing the MicaZ (CC2420) Radio Stack, but all the functions stated in
that are implemented in TinyOS 2.0 which is not my case. 

I really need to find the right function to disable the CCA in CC2420
regardless whether the channel is busy or not by using TinyOS 1.1.15. 

Many thanks!

Ruoshui 

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

RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 2.0.2?

2008-03-17 Thread David Moss
Hi Sha -

You're right, we are missing a check for RXFIFO overflow.  Right now the
maximum default CC2420 packet size in TinyOS is 41 bytes (including CRC).
The RXFIFO is 128 bytes, which means you'd be able to fit 3 full packets in
the RXFIFO before an overflow occurs.  Although I think it may be unlikely
that you'd spontaneously receive 3+ full packets in the RXFIFO due to CSMA
backoffs and transmit delays, it can still happen.  

But imagine this scenario: you receive 3 maxed-out packets that are valid,
and get a fourth packet that causes an RXFIFO overflow, and is therefore
corrupted.  Do you flush the RXFIFO at that point and lose the 3 valid
packets that are already in there?  Or do you wait until you're reading out
the fourth packet that is corrupted before flushing it?  In the current
scenario, you read out the amount of data as specified by the fourth packet
and see that the CRC doesn't check out.  Upon reading the next packet, the
length is found to be invalid and the RXFIFO is flushed.  

Putting in an explicit check for RXFIFO overflow may be more desirable, but
the question is, when is the best time to flush the RXFIFO?  Right when the
error occurs? Or after you get any remaining valid packets out?

-David



-Original Message-
From: Liusand [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 14, 2008 10:33 PM
To: David Moss; tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS
2.0.2?

Thanks, David.

I have some questions concerning RXFIFO overflow. In CC2420ReceiveP.nc, 
RXFIFO is flushed only when the length byte is invalid. So where is RXFIFO 
overflow taken care of? Can reading bytes from RXFIFO automatically clear 
the overflow status?

Also, in CC2420TransmitP, RXFIFO overflow status is not checked before 
issuing the STXONCCA or STXON strobe. So if RXFIFO has already overflowed, 
there will be no more space for ack frame. TinyOS 1.1.15 does do this check 
before sending and flush RXFIFO accordingly even though I'm not sure if it 
is for this purpose.

Thanks,

-Sha


--
From: David Moss [EMAIL PROTECTED]
Sent: Friday, March 14, 2008 5:26 PM
To: 'Liusand' [EMAIL PROTECTED]; tinyos-help@millennium.berkeley.edu
Subject: RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 
2.0.2?

 The TX FIFO is preloaded with data.  The data is not being transmitted to
 the CC2420 as the transmission is taking place, unlike other chips. 
 Because
 of the preload, it is impossible for the CC2420 to produce a TXFIFO
 UNDERFLOW. All the data to send is available on the chip when transmit
 occurs.

 Due to the rules of the CSMA and Transmit modules, a new packet cannot be
 uploaded to the TX FIFO until the previous packet in the TX FIFO was
 transmitted.  This should guarantee that the TX FIFO be empty when the 
 next
 transmit occurs.  If a cancel occurs, a quick SFLUSHTX empties the 
 contents
 of the TX FIFO.

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Liusand
 Sent: Friday, March 14, 2008 12:45 PM
 To: tinyos-help@millennium.berkeley.edu
 Subject: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 2.0.2?

 Hi,

 When I was studying CC2420TransmitP.nc, I noticed that TXFIFO is never
 flushed and underflow status is never checked. In CC2420RadioM.nc from
 TinyOS 1.1.15, TXFIFO is flushed in startSend() every time before it is
 written data to.

 It might be too conservative in TinyOS 1.1.15, but why overflow is never
 taken care of in TinyOS 2.0.2?

 Another related question is, in which situations TXFIFO underflow may
 happen?

 Thanks,

 Sha

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


 


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


RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 2.0.2?

2008-03-17 Thread David Moss
The ACK delay was increased from ~128 (or lower) from earlier versions of
the CC2420 to 256 simply to handle these types of cases.  Functional tests
show this delay works well for 'normal' networks of multiple nodes and
unaltered CSMA backoffs; however, modifying the CSMA behavior may
necessitate changes to the ACK delay.  The ACK delay, like many parameters
in the stack, was chosen based on the results of functional testing (with no
SPI0 DMA).

I'm not sure off the top of my head what the SPI throughput is, but it can
also vary based on DMA settings.  Adding SPI0 DMA support greatly increases
the throughput.

-David



 -Original Message-
From: Liusand [mailto:[EMAIL PROTECTED] 
Sent: Monday, March 17, 2008 8:08 AM
To: David Moss; tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS
2.0.2?

Hi David,

Thanks for the explanation.

The treatment of packets already in the RXFIFO queue is definitely 
reasonable to the receiver. But if we use SACK to issue acknowledgements 
like in CC2420ReceiveP.nc, the 3rd packet may wait quite some time before 
the ack for it is sent, and hence the deadline at sender side may have been 
missed. The delay before ack timer fires is CC2420_ACK_WAIT_DELAY = 256, so 
does it take the delay in reading RXFIFO into consideration? What is the SPI

speed in TelosB or TmoteSky?

Thanks,

Sha


--
From: David Moss [EMAIL PROTECTED]
Sent: Monday, March 17, 2008 10:21 AM
To: 'Liusand' [EMAIL PROTECTED]; tinyos-help@millennium.berkeley.edu
Subject: RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 
2.0.2?

 Hi Sha -

 You're right, we are missing a check for RXFIFO overflow.  Right now the
 maximum default CC2420 packet size in TinyOS is 41 bytes (including CRC).
 The RXFIFO is 128 bytes, which means you'd be able to fit 3 full packets 
 in
 the RXFIFO before an overflow occurs.  Although I think it may be unlikely
 that you'd spontaneously receive 3+ full packets in the RXFIFO due to CSMA
 backoffs and transmit delays, it can still happen.

 But imagine this scenario: you receive 3 maxed-out packets that are valid,
 and get a fourth packet that causes an RXFIFO overflow, and is therefore
 corrupted.  Do you flush the RXFIFO at that point and lose the 3 valid
 packets that are already in there?  Or do you wait until you're reading 
 out
 the fourth packet that is corrupted before flushing it?  In the current
 scenario, you read out the amount of data as specified by the fourth 
 packet
 and see that the CRC doesn't check out.  Upon reading the next packet, the
 length is found to be invalid and the RXFIFO is flushed.

 Putting in an explicit check for RXFIFO overflow may be more desirable, 
 but
 the question is, when is the best time to flush the RXFIFO?  Right when 
 the
 error occurs? Or after you get any remaining valid packets out?

 -David



 -Original Message-
 From: Liusand [mailto:[EMAIL PROTECTED]
 Sent: Friday, March 14, 2008 10:33 PM
 To: David Moss; tinyos-help@millennium.berkeley.edu
 Subject: Re: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS
 2.0.2?

 Thanks, David.

 I have some questions concerning RXFIFO overflow. In CC2420ReceiveP.nc,
 RXFIFO is flushed only when the length byte is invalid. So where is RXFIFO
 overflow taken care of? Can reading bytes from RXFIFO automatically clear
 the overflow status?

 Also, in CC2420TransmitP, RXFIFO overflow status is not checked before
 issuing the STXONCCA or STXON strobe. So if RXFIFO has already overflowed,
 there will be no more space for ack frame. TinyOS 1.1.15 does do this 
 check
 before sending and flush RXFIFO accordingly even though I'm not sure if it
 is for this purpose.

 Thanks,

 -Sha


 --
 From: David Moss [EMAIL PROTECTED]
 Sent: Friday, March 14, 2008 5:26 PM
 To: 'Liusand' [EMAIL PROTECTED]; 
 tinyos-help@millennium.berkeley.edu
 Subject: RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS
 2.0.2?

 The TX FIFO is preloaded with data.  The data is not being transmitted to
 the CC2420 as the transmission is taking place, unlike other chips.
 Because
 of the preload, it is impossible for the CC2420 to produce a TXFIFO
 UNDERFLOW. All the data to send is available on the chip when transmit
 occurs.

 Due to the rules of the CSMA and Transmit modules, a new packet cannot be
 uploaded to the TX FIFO until the previous packet in the TX FIFO was
 transmitted.  This should guarantee that the TX FIFO be empty when the
 next
 transmit occurs.  If a cancel occurs, a quick SFLUSHTX empties the
 contents
 of the TX FIFO.

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Liusand
 Sent: Friday, March 14, 2008 12:45 PM
 To: tinyos-help@millennium.berkeley.edu
 Subject: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 
 2.0.2?

 Hi,

 When I was studying

RE: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 2.0.2?

2008-03-14 Thread David Moss
The TX FIFO is preloaded with data.  The data is not being transmitted to
the CC2420 as the transmission is taking place, unlike other chips.  Because
of the preload, it is impossible for the CC2420 to produce a TXFIFO
UNDERFLOW. All the data to send is available on the chip when transmit
occurs.

Due to the rules of the CSMA and Transmit modules, a new packet cannot be
uploaded to the TX FIFO until the previous packet in the TX FIFO was
transmitted.  This should guarantee that the TX FIFO be empty when the next
transmit occurs.  If a cancel occurs, a quick SFLUSHTX empties the contents
of the TX FIFO.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Liusand
Sent: Friday, March 14, 2008 12:45 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] TXFIFO underflow not taken care of in TinyOS 2.0.2?

Hi,

When I was studying CC2420TransmitP.nc, I noticed that TXFIFO is never 
flushed and underflow status is never checked. In CC2420RadioM.nc from 
TinyOS 1.1.15, TXFIFO is flushed in startSend() every time before it is 
written data to.

It might be too conservative in TinyOS 1.1.15, but why overflow is never 
taken care of in TinyOS 2.0.2?

Another related question is, in which situations TXFIFO underflow may 
happen?

Thanks,

Sha 

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


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


RE: [Tinyos-help] Which packet in RXFIFO is SACK acking?

2008-03-13 Thread David Moss
The ACK should be generated for the packet you're currently reading out of
the RXFIFO.  The ACK will only be issued if the packet you're currently
reading out has a valid CRC.

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Liusand
Sent: Thursday, March 13, 2008 8:58 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Which packet in RXFIFO is SACK acking?

Hi,

I have a question on the SACK command strobe for CC2420. As we know, the 
RXFIFO can hold several packets as long as the total length is no more than 
128. Hence, when the first packet is read out and then a SACK command is 
issued, which packet in the RXFIFO queue is the ack for? I checked 
CC2420ReceiveP.nc in T2, and it seems the ack is for the packet just read 
out. But some discussions on devel mailing-list said opposite. Can anyone 
help me undertand this?

Thanks,

Sha 

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


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


RE: [Tinyos-help] Question on CC2420ReceiveP.nc in TinyOS 2.0.2

2008-03-13 Thread David Moss
The status byte returned by the command over SPI is not important in this
particular case, so we ignore it intentionally.  In order to get a receive()
event fired, the radio must be in the proper state, and therefore
beginRead() will always succeeds.  

The status byte is important when the radio driver is attempting to change
the state of the radio, and needs to verify the radio's status.

-David




-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Liusand
Sent: Thursday, March 13, 2008 6:35 PM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Question on CC2420ReceiveP.nc in TinyOS 2.0.2

Hi,

I noticed that, in CC2420ReceiveP.nc from TinyOS 2.0.2, the receive() 
function calls RXFIFO.beginRead() without checking its return value. But as 
stated in CC2420Fifo.nc, beginRead() is supposed to return status byte 
returned when sending the last address byte of the SPI transaction. So does

this mean the return value is not important and beginRead() will always 
succeed?

Thanks,

Sha 

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


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


RE: [Tinyos-help] How to use interface RadioBackoff

2008-03-10 Thread David Moss
The RadioBackoff interface is designed to allow (possible several) modules
in your application layer to listen in on what the radio stack is doing, and
decide whether or not to affect the operation of CSMA.  Unlike the former
CsmaBackoff interface, a module is not required to affect the operation of
CSMA if it is simply listening for a specific case to arise.

The RadioBackoff.requestInitialBackoff() event is signaled right before the
message is attempting to send the first time.  If the channel is found to be
busy, CSMA will hold off on transmitting in a congestion backoff.  Each
subsequent congestion backoff that occurs while the channel is busy will
result in the RadioBackoff.requestCongestionBackoff() event signaling.

If you are interested in affecting the backoff times of CSMA, you MUST call
back to the RadioBackoff interface INSIDE the event that fired.  In other
words, if you get a requestInitialBackoff() event and you're interested in
changing the initial backoff delay, you call back only inside that event
RadioBackoff.setInitialBackoff(...).   Same thing with the
requestCongestionBackoff() event - you must call back to
RadioBackoff.setCongestionBackoff() inside the event if you want to affect
operation.

If you call the commands outside of an event, they will be ignored.
Similarly, if you call back with the wrong command inside an event (like
calling setCongestionBackoff() inside the requestInitialBackoff() event) it
will be ignored.

-David




-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of sergio
mena doce
Sent: Monday, March 10, 2008 7:16 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] How to use interface RadioBackoff


Hello,

I'm working in tinyos application and I'd like to modify the backoff
interval to do several communication test between motes. I don't understand
fine how to use the interface RadioBackoff provided by the component
CC2420CsmaC. When do requestInitialBackoff and requestCongestionBackoff
events fires? When can I implement the setInitialBackoff and
setCongestionBackoff? Can these commands go inside or outisde of the events?

I hope your reply.

Thanks.   
_
MSN Video. 
http://video.msn.com/?mkt=es-es
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] Looking for someone to port TinyOS to 16/32-bitPIC Microcontrollers

2008-03-09 Thread David Moss
I've been successful in getting the most basic TinyOS 2.x application to
compile for a PIC18F85J11 using the CCS compiler.  This required a custom
application to mangle the app.c output of nesC so CCS could compile it. 

This is a preliminary start.  Now, implementations are needed for things
like Timers, McuSleepC, UART, SPI, etc.  The CCS compiler provides a lot of
these functions built-in, which should make the implementations a lot
easier.  

Anyone interested in this? 

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Wednesday, March 05, 2008 2:20 PM
To: [EMAIL PROTECTED]
Cc: tinyos-help@millennium.berkeley.edu
Subject: RE: [Tinyos-help] Looking for someone to port TinyOS to
16/32-bitPIC Microcontrollers

Hi MS,

These days there are over a one hundred (growing to 150) 16  32-bit
PIC24, dsPIC, PIC32 products with a software stack and several supported
RTOS-es, supported by a derivative of GCC compiler among others. These
are price-competitive with Atmel and MSP430 and have parts up from 6KB
to 512KB in Flash...i hope you can look at these again,

RV

-Original Message-
From: Michael Schippling [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 05, 2008 10:47 AM
To: Rishi Vasuki - C11300
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Looking for someone to port TinyOS to
16/32-bit PIC Microcontrollers

I believe there have been marginally successful attempts in the past,
search back on this list for PIC to see if there's more info.
But I think there are some hardware issues, e.g., the PICs I'm
familiar with don't have a stack mechanism which makes implementing
a real 'C' language difficult.

If there are more modern PICs that are price competitive with Atmega
and MSP, I'd be interested in looking at it again.

MS

[EMAIL PROTECTED] wrote:
 Hello,
 
  
 
 We were interested in investigating a port of TinyOS using our 8, 16 

 32-bit PIC Microcontrollers as hardware platforms.
 
  
 
 If anyone is interested in pursuing this, please contact me directly
at 
 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 
  
 
  
 
 Regards,
 
 Rishi
 
  
 
 


 
 ___
 Tinyos-help mailing list
 Tinyos-help@millennium.berkeley.edu

https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

-- 
Platform: WinXP/Cygwin
TinyOS version: 1.x, Boomerang
Programmer: MIB510
Device(s): Mica2, MicaZ, Tmote
Sensor board: homebrew


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


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


RE: [Tinyos-help] False acknowledgments and CRC

2008-03-04 Thread David Moss
The wiki is incorrect, and I'll update it.  Your observations on the
datasheet are correct.

 

The actual CRC check in software is done after the SACK has been issued, but
the hardware is intelligent enough to know not to send an ACK if the CRC
failed.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of renjie
huang
Sent: Tuesday, March 04, 2008 10:55 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] False acknowledgments and CRC

 

When I read following link, I have some question: 
http://docs.tinyos.net/index.php/CC2420_Known_Issues
 False acknowledgments can get sent back for corrupted packets that are not
actually received. The issue is that acknowledgements are sent before the
CRC 

check is performed.
 
Does it mean hardware acknowledgments are send before CRC check is
performed? But from CC2420 datasheet, it seems that AUTOCRC should be also 

enabled when hardware acknowledgment is enabled. Following is from CC2420
data sheet:
CC2420 includes hardware support for transmitting acknowledge frames, as
specified in [1]. Figure 22 shows the format of the acknowledge frame. 
If MDMCTRL0.AUTOACK is enabled, an acknowledge frame is transmitted for all
incoming frames accepted by the address recognition with the acknowledge 

request flag set and a valid CRC. AUTOACK therefore does not make sense
unless also ADR_DECODE and AUTOCRC are enabled. 



-- 
 
  Renjie 

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

RE: [Tinyos-help] UniqueSend question

2008-02-25 Thread David Moss
UniqueSend is simply a layer inside of radio stacks, providing the Send
interface to layers above, and using the Send as SubSend interface to
connect to layers below.  Its purpose is to set a unique DSN (data sequence
number) byte in the packet's header on the way out.  

 

There's a reference implementation of UniqueSendP in
tinyos-2.x/tos/chips/cc2420/unique/UniqueSendP.nc

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Sikar Chan
Sent: Sunday, February 24, 2008 10:42 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] UniqueSend question

 

Hi All

Is there any different in coding for UniqueSend and just Send?
I got confused with the coding for them as shown in
http://www.tinyos.net/tinyos-2.x/doc/html/tep126.html

Would any one give me some example or suggestion?

Thanks
Sikar Chan

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

RE: [Tinyos-help] serial send acknowledgement

2008-02-20 Thread David Moss
There's another aspect to consider here as well:  uC-to-uC serial
communications.  Although I haven't looked into it much deeper, I suspect
TinyOS's asymmetric serial acknowledgments could be playing a part in the
failures we've seen in preliminary attempts to get uC's to talk through
their serial stacks.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Philip
Levis
Sent: Wednesday, February 20, 2008 9:40 AM
To: Kaan Tuna
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] serial send acknowledgement


On Feb 20, 2008, at 7:37 AM, Kaan Tuna wrote:

 Hello all,
 When we send data over the serial port, how can we verify that the  
 receiver (PC, terminal...) succesfully received the packet?
 Do we need a modification in the application layer (ie in the code,  
 SerialSend.SendDone ?)? Is there any implementation of this kind?

Yes. You need a modification in the application layer.

This has been a point of discussion on TEP 113. Currently, TinyOS  
acknowledges packets from the PC, but the PC does not acknowledge  
packets from TinyOS. The protocol would allow such a thing -- just  
send PROTO_PACKET_ACK to the PC -- but the serial stack  
implementation doesn't support it. On one hand, it would be nice if  
you could request ACKs; on the other, I'm worried about code bloat.  
Right now the serial stack is about 3.5-4K of code all together, and  
adding acks would probably add another 1K or so. Given that it's an  
infrequent request, yet many applications run into the code size  
limits on telos-family motes, I'm leery of adding support. Writing an  
alternative stack that supports acks isn't appealing, either, as that  
means maintaining parallel implementations (and I already maintain  
too much).

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


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


RE: [Tinyos-help] CC2420 Hardware ACKs

2008-02-14 Thread David Moss
Are you requesting an acknowledgment before sending?

call PacketAcknowledgements.requestAck(myMsg);
call AMSend.send(0x0, myMsg, sizeof(my_payload_t));

Does it the software work as expected using software acknowledgments?

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Rodolfo de
Paz Alberola
Sent: Thursday, February 14, 2008 4:28 AM
To: tinyos-help
Subject: [Tinyos-help] CC2420 Hardware ACKs

Hi all,

I was trying to set Hardware ACKs for CC2420 radio chip. I did a simple
ping pong application in which I posted a task call ack() inside the
event SplitControl.startDone(error_t error). 

The task call ack activates HW acknowledgements in the following way:

bool activated = TRUE;
task void ack() {
   atomic{
  call CC2420Config.setAutoAck(activated,activated);
  if (call CC2420Config.sync() != SUCCESS) {
  post ack();
  }
   }

However, the mote that is sending messages is not receiving any ack.
Should I do anything else to activate CC2420 HW acks?. Any help? 

Regards,

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


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


RE: [Tinyos-help] CC2420 Hardware ACKs

2008-02-14 Thread David Moss
Also, are you calling CC2420Config.sync() to commit your hardware
acknowledgment changes to the CC2420 hardware?

call CC2420Config.setAutoAck(TRUE, TRUE);
call CC2420Config.sync();
  // wait awhile

event void CC2420Config.syncDone() {
  ...
}


-David


-Original Message-
From: Rodolfo de Paz Alberola [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 14, 2008 9:12 AM
To: David Moss
Cc: 'tinyos-help'
Subject: RE: [Tinyos-help] CC2420 Hardware ACKs

Hi David,

On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
Are you requesting an acknowledgment before sending?

 
 call PacketAcknowledgements.requestAck(myMsg);
 call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
 
No, I thought that only calling the command setAutoAck 
it should enable MDMCTRL0.AUTOACK leaving to the CC2420 radio chip 
all the process. 

This command that you mention for requesting acks I think that only
works for SW acks.


Does it the software work as expected using software acknowledgments?
 
Yes, I did another application using software acknowledgments and it
works fine, 
but in this case I would like to use hw acks since i am trying to model
the 
cc2420 radiochip which has hw acks as well.

Thanks for your help. Any idea?


Rodo

On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
 Are you requesting an acknowledgment before sending?
 
 call PacketAcknowledgements.requestAck(myMsg);
 call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
 
 Does it the software work as expected using software acknowledgments?
 
 -David
 
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Rodolfo
de
 Paz Alberola
 Sent: Thursday, February 14, 2008 4:28 AM
 To: tinyos-help
 Subject: [Tinyos-help] CC2420 Hardware ACKs
 
 Hi all,
 
 I was trying to set Hardware ACKs for CC2420 radio chip. I did a simple
 ping pong application in which I posted a task call ack() inside the
 event SplitControl.startDone(error_t error). 
 
 The task call ack activates HW acknowledgements in the following way:
 
 bool activated = TRUE;
 task void ack() {
atomic{
   call CC2420Config.setAutoAck(activated,activated);
   if (call CC2420Config.sync() != SUCCESS) {
   post ack();
   }
}
 
 However, the mote that is sending messages is not receiving any ack.
 Should I do anything else to activate CC2420 HW acks?. Any help? 
 
 Regards,
 
 -
 Rodo
 ___
 Tinyos-help mailing list
 Tinyos-help@millennium.berkeley.edu
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
 
 


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


RE: [Tinyos-help] CC2420 Hardware ACKs

2008-02-14 Thread David Moss
The CC2420 radio requires the acknowledgment request flag be set in the FCF
byte before it will automatically generate a hardware acknowledgment for any
received packet.

-David


-Original Message-
From: Rodolfo de Paz Alberola [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 14, 2008 9:12 AM
To: David Moss
Cc: 'tinyos-help'
Subject: RE: [Tinyos-help] CC2420 Hardware ACKs

Hi David,

On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
Are you requesting an acknowledgment before sending?

 
 call PacketAcknowledgements.requestAck(myMsg);
 call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
 
No, I thought that only calling the command setAutoAck 
it should enable MDMCTRL0.AUTOACK leaving to the CC2420 radio chip 
all the process. 

This command that you mention for requesting acks I think that only
works for SW acks.


Does it the software work as expected using software acknowledgments?
 
Yes, I did another application using software acknowledgments and it
works fine, 
but in this case I would like to use hw acks since i am trying to model
the 
cc2420 radiochip which has hw acks as well.

Thanks for your help. Any idea?


Rodo

On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
 Are you requesting an acknowledgment before sending?
 
 call PacketAcknowledgements.requestAck(myMsg);
 call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
 
 Does it the software work as expected using software acknowledgments?
 
 -David
 
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Rodolfo
de
 Paz Alberola
 Sent: Thursday, February 14, 2008 4:28 AM
 To: tinyos-help
 Subject: [Tinyos-help] CC2420 Hardware ACKs
 
 Hi all,
 
 I was trying to set Hardware ACKs for CC2420 radio chip. I did a simple
 ping pong application in which I posted a task call ack() inside the
 event SplitControl.startDone(error_t error). 
 
 The task call ack activates HW acknowledgements in the following way:
 
 bool activated = TRUE;
 task void ack() {
atomic{
   call CC2420Config.setAutoAck(activated,activated);
   if (call CC2420Config.sync() != SUCCESS) {
   post ack();
   }
}
 
 However, the mote that is sending messages is not receiving any ack.
 Should I do anything else to activate CC2420 HW acks?. Any help? 
 
 Regards,
 
 -
 Rodo
 ___
 Tinyos-help mailing list
 Tinyos-help@millennium.berkeley.edu
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
 
 


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


RE: [Tinyos-help] CC2420 Hardware ACKs

2008-02-14 Thread David Moss
Hi Rodo -

By default, software acknowledgments are enabled.  This means
MDMCTRL0.AUTOACK is *disabled* by default. With the hardware auto-ack's
disabled, it is left up to CC2420ReceiveP to decide whether or not to issue
a software ack (via the SACK strobe).

There are two methods to enable automatic hardware acknowledgments:

1. On boot, turn on the radio, call CC2420Config.setAutoAck(TRUE, TRUE); and
then call CC2420Config.sync() to synchronize your settings with the radio
hardware.  The (TRUE, TRUE) settings of setAutoAck are saying YES, issue
acknowledgments, and YES, use hardware acknowledgements instead of software
acknowledgments.  

You will receive a syncDone() event when it's done configuring the hardware.
The radio will then automatically issue acknowledgments for valid packets
that have the acknowledgment flag set in the FCF byte of the header (set by
calling PacketAcknowledgements.requestAck(myMsg);


2. Enable hardware acknowledgments at compile time. This lets you avoid the
extra coding hassle required to enable hardware acks during runtime. Do this
by editing your Makefile to include the line:

  CFLAGS+=-DCC2420_HW_ACKNOWLEDGEMENTS

When you compile, hardware acknowledgments will be the default
(MDMCTRL0.AUTOACK = 1) and software acknowledgments will be disabled.


-David



-Original Message-
From: Rodolfo de Paz Alberola [mailto:[EMAIL PROTECTED] 
Sent: Thursday, February 14, 2008 1:01 PM
To: David Moss
Cc: tinyos-help
Subject: RE: [Tinyos-help] CC2420 Hardware ACKs

Thanks David for your reply, but now I don't know then the difference
between call or not call setAutoAck. 

If I send a packet requesting the ack using the requestAck(myMsg)
comand, which means set the request flag in the FCF, I don't have to do
anything in the receiver to obtain an ack in the sender. The receiver
sends an ack automatically to the sender. So, what am i doing with this
command...sw or hw acks? Is then MDMCTRL0.AUTOACK enabled as default?

My understanding after reading the data sheet was:

- If MDMCTRL0.AUTOACK is not enabled: you have to check the request flag
and crc, if the flag is set and the crc valid, then you have to send the
ack. This meant for me SW acks. 

- However, if autoack is enabled in the receiver, this mote sends the
ack automatically to the sender when the requested flag is set and crc
is valid.

Sorry for bother you again but I'm more confused now.

On Thu, 2008-02-14 at 09:34 -0700, David Moss wrote:
 Also, are you calling CC2420Config.sync() to commit your hardware
 acknowledgment changes to the CC2420 hardware?
 
 call CC2420Config.setAutoAck(TRUE, TRUE); 
 call CC2420Config.sync();
   // wait awhile
 
 event void CC2420Config.syncDone() {
   ...
 }
 
 
 -David
 
 
 -Original Message-
 From: Rodolfo de Paz Alberola [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, February 14, 2008 9:12 AM
 To: David Moss
 Cc: 'tinyos-help'
 Subject: RE: [Tinyos-help] CC2420 Hardware ACKs
 
 Hi David,
 
 On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
 Are you requesting an acknowledgment before sending?
 
  
  call PacketAcknowledgements.requestAck(myMsg);
  call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
  
 No, I thought that only calling the command setAutoAck 
 it should enable MDMCTRL0.AUTOACK leaving to the CC2420 radio chip 
 all the process. 
 
 This command that you mention for requesting acks I think that only
 works for SW acks.
 
 
 Does it the software work as expected using software acknowledgments?
  
 Yes, I did another application using software acknowledgments and it
 works fine, 
 but in this case I would like to use hw acks since i am trying to model
 the 
 cc2420 radiochip which has hw acks as well.
 
 Thanks for your help. Any idea?
 
 
 Rodo
 
 On Thu, 2008-02-14 at 08:56 -0700, David Moss wrote:
  Are you requesting an acknowledgment before sending?
  
  call PacketAcknowledgements.requestAck(myMsg);
  call AMSend.send(0x0, myMsg, sizeof(my_payload_t));
  
  Does it the software work as expected using software acknowledgments?
  
  -David
  
  
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of
Rodolfo
 de
  Paz Alberola
  Sent: Thursday, February 14, 2008 4:28 AM
  To: tinyos-help
  Subject: [Tinyos-help] CC2420 Hardware ACKs
  
  Hi all,
  
  I was trying to set Hardware ACKs for CC2420 radio chip. I did a simple
  ping pong application in which I posted a task call ack() inside the
  event SplitControl.startDone(error_t error). 
  
  The task call ack activates HW acknowledgements in the following way:
  
  bool activated = TRUE;
  task void ack() {
 atomic{
call CC2420Config.setAutoAck(activated,activated);
if (call CC2420Config.sync() != SUCCESS) {
post ack();
}
 }
  
  However, the mote that is sending messages is not receiving any ack.
  Should I do anything else to activate CC2420 HW acks?. Any help? 
  
  Regards,
  
  -
  Rodo

[Tinyos-help] RE: [Tinyos-devel] CTP + LPL

2008-02-07 Thread David Moss
Matt and Phil - 

This is meant to serve only as a private interface within the CC2420 stack
right now, not an interface provided by the ActiveMessage façade.  After
all, once the interface is provided by ActiveMessage, it is no longer a
private CC2420-specific interface.

This is absolutely not a CTP or MultiHop protocol changing interface, since
that would make those libraries platform dependent, which is bad.  This is
also not an LPL interface. Rather, the point of this interface is to simply
signal an event at the top of the stack that says the radio is sending a
message. Your application can do what it wants with that event.
 
For developers who want CTP + LPL on a CC2420 platform, this single
notification event gives them the ability to make it happen *right now*
without modifying any libraries.  No modifications to CTP, no modifications
to LPL, no modifications to the radio stack, and nearly 0 cost. 

You're correct: we should document this interface in the CC2420 TEP, or add
this to some other TEP to standardize it across radio stacks.  A second
direction would be to continue adding onto the LowPowerListening interface
to make each outbound message use your local LPL settings, but I would be
hesitant to make those kinds of changes without a lot of backing.

-David




-Original Message-
From: Matt Welsh [mailto:[EMAIL PROTECTED] On Behalf Of Matt Welsh
Sent: Wednesday, February 06, 2008 3:10 PM
To: David Moss
Cc: 'TinyOS Development'; 'tinyos-help@Millennium.Berkeley.EDU list'
Subject: Re: [Tinyos-devel] CTP + LPL

While I like this idea, are we going through a TEP vetting process  
before adding new calls in the radio stack interface? I could think of  
a lot of things that one might want to add to the CC2420 radio stack  
but I thought the idea of the TEP process was to air these ideas  
through feature extension proposals before just adding things when  
they seem like a good idea. Then again maybe we need to draw a  
distinction between public interfaces and private ones; I suppose  
one could consider the internals of the CC2420 stack to be private  
-- that is until any upper level code starts relying on the existence  
of this interface and makes it impossible to port to other radio stacks.




On Feb 5, 2008, at 8:26 AM, David Moss wrote:

 I just added a hook to the CC2420 radio stack in CVS to configure an  
 outbound message. The interface is called SendNotifier, and has a  
 single event:

   event void aboutToSend(am_addr_t addr, message_t *msg);

 This event is provided by CC2420ActiveMessageC, and is parameterized  
 by am_id_t.

 You can access this interface to configure packets sent by any  
 module in your application, modifying the outbound packet based on  
 AM type, destination, etc.  The main intention is CTP + LPL  
 integration (with examples attached – modify as necessary), but you  
 can use it to add all sorts of system-wide functionality to your  
 application.  Here’s a small example:

   event void SendNotifier.aboutToSend[AM_CTP_DATA](am_addr_t addr,  
 message_t *msg) {
 call LowPowerListening.setRxSleepInterval(msg, 512);
   }

 Simply create a module that defines an LPL policy for your system,  
 and use the SendNotifier interface to enforce it.

 If this hook works out, we can extend this to other radio stacks as  
 necessary.

 -David


 CtpLplC.ncCtpLplP.nc
 ___
 Tinyos-devel mailing list
 [EMAIL PROTECTED]
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel




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


RE: [Tinyos-help] Group ID on-the-fly change

2008-02-06 Thread David Moss
This is what the ActiveMessageAddressC component is supposed to handle in
2.0.2, although it won't change the enum / defined TOS_AM_GROUP.  

  call ActiveMessageAddress.setAddress(am_group_t group, am_addr_t addr);

You should always access TOS_AM_GROUP through call
ActiveMessageAddress.amGroup().  Accessing TOS_AM_GROUP or TOS_AM_ADDRESS
directly is bad practice.

Changing the address/group information will cause ActiveMessageAddressC to
signal out an ActiveMessageAddress.changed() event. This notifies the radio
stack that it needs to sync the radio hardware with the node's new
address/group.

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Shaun
Lawrence
Sent: Monday, February 04, 2008 10:30 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Group ID on-the-fly change


Anyone have an idea?

Shaun

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Shaun
Lawrence
Sent: Friday, February 01, 2008 11:34 AM
To: tinyos-help@millennium.berkeley.edu
Subject: RE: [Tinyos-help] Group ID Help

That worked, now does anyone know how to change the GroupId on the fly?

If I send a packet via the UART with a group id in the payload, is
there a command I can call that will change TOS_AM_GROUP?

Hopefully there is an easier way than editing/using the Deluge NetProg.

Thanks all,
Shaun

-Original Message-
From: Andreas Reinhardt [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 01, 2008 2:49 AM
To: [EMAIL PROTECTED]
Cc: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Group ID Help

Shaun, you wrote you were using BaseStation to monitor your packets.  
For some reason it always blanks the group ID field. Maybe my latest  
post regarding this issue is of some help:

http://www.mail-archive.com/tinyos-help@millennium.berkeley.edu/msg17703.htm
l

Regards, Andreas


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


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


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


[Tinyos-help] CTP + LPL

2008-02-06 Thread David Moss
I just added a hook to the CC2420 radio stack in CVS to configure an
outbound message. The interface is called SendNotifier, and has a single
event:

 

  event void aboutToSend(am_addr_t addr, message_t *msg);

 

This event is provided by CC2420ActiveMessageC, and is parameterized by
am_id_t.

 

You can access this interface to configure packets sent by any module in
your application, modifying the outbound packet based on AM type,
destination, etc.  The main intention is CTP + LPL integration (with
examples attached - modify as necessary), but you can use it to add all
sorts of system-wide functionality to your application.  Here's a small
example:

 

  event void SendNotifier.aboutToSend[AM_CTP_DATA](am_addr_t addr, message_t
*msg) {

call LowPowerListening.setRxSleepInterval(msg, 512);

  }

 

Simply create a module that defines an LPL policy for your system, and use
the SendNotifier interface to enforce it.

 

If this hook works out, we can extend this to other radio stacks as
necessary.

 

-David

 

 



CtpLplC.nc
Description: Binary data


CtpLplP.nc
Description: Binary data
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

[Tinyos-help] CC2420 LQI/RSSI bug fix

2008-01-16 Thread David Moss
Dane Murdock here at Rincon discovered an edge case bug with the CC2420
receive branch when applying TUnit unit testing to CC2420ReceiveP.

 

This edge case occurred only with receiving a full payload.  Having a
complete payload to download, the RSSI and LQI bytes were automatically
downloaded into the wrong area of the metadata portion of the message_t.
These bytes were then re-arranged in the part of the code that intentionally
fills out metadata information, and in doing so, the LQI byte was
overwritten by the RSSI byte.  

 

The fix has been checked into CVS.

 

-David

 

 

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

RE: [Tinyos-help] about two radioes on one mote

2007-12-31 Thread David Moss
I can answer the part about why CC1100?

 

The CC1100 radio can operate around 315 MHz, 433 MHz, and 915 MHz.  The
lower the frequency, the farther range you'll be able to transmit, and at a
lower power output level (less energy).  At 315 MHz, for example, we're able
to transmit using a CC1100 radio for about 700-800 feet, on the ground, with
basic wire antennas.  There's a few FCC restrictions on 315 MHz, but 433 MHz
is the next nicest thing.

 

The CC1100 radio operates at 500 kbps, twice as fast as the CC2420 radio and
thirteen times faster than the CC1000 in raw throughput.  If you decrease
the rate of throughput, you can even get farther range.

 

The CC1100 radio is 4x4 mm, significantly smaller than the CC2420 radio.
This is good for laying out a board, but the lower the frequency, the larger
antenna you need as well.

 

The CC1100 radio also has other nice features: hardware wake-on-radio (low
power listening), forward error correction, FSK, MSK, GFSK, OOK, etc. to
name a few. 

 

The CC2420 radio has quite a few problems:  2.4 GHz doesn't transmit very
far under reasonable power output levels, 2.4 GHz is saturated with DSSS
signals, etc.

 

 

So if you're at all concerned about throughput, range, and chip size - then
the CC1100 radio is the way to go.  However, if you're interested in
interfacing with other 2.4 GHz 802.15.4 devices, then the CC2420 radio is
the way to go.  If a small antenna size is the main concern but 802.15.4
isn't, then the CC2500 radio is the right choice.

 

 

As far as interfacing both radios, this is done on a per-platform basis
inside of the ActiveMessageC.nc file.   Typically, you use the
ActiveMessageC to forward interfaces onto the default radio.  Then, you
access your secondary radio directly.  On my platform, I select the radio to
send to on a per-message basis and have some logic at the ActiveMessageC
level that directs the message to the proper device.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of roberto
pagliari
Sent: Saturday, December 29, 2007 5:48 AM
To: jiwen zhang
Cc: tinyos-help
Subject: Re: [Tinyos-help] about two radioes on one mote

 

why did you use cc1100 instead of another cc2420? the modulation scheme is
more robust. to answer your question, the communication between the
microcontroller and the radio is based on spi (the uController is the
master). If you need some code to implement the mac layer, and the packet
formatting library, you might take a look at the tinyos stack. tinyos 1.x is
csma, while tinyos 2.x is a mix of b-mac and x-mac.

On Dec 27, 2007 6:32 PM, jiwen zhang [EMAIL PROTECTED] wrote:

Hello all :

  we design a mote which has two radioes(cc2420 and cc1100) , now each one
of them can send and receive data nomally , that is to say they are ok on
hardware. now i want to use both of them in one application , sometimes i
use one to communicate , sometimes i use the other (not synchronously ,
because they use the same SPI) . How to realize it ? 

  Maybe it is a difficult question ,  but i think there must be a way to
solve it . Is there someone having done this work ? can you give me some
suggestions ? thank you very much!!! 

  

 

 Jiwen


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

 

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

RE: [Tinyos-help] current MAC protocol in TinyOS

2007-12-31 Thread David Moss
Hi Tie,

 

Sorry, I've been on vacation for awhile and will continue to be on vacation
for the next week.

 

The CC2420 radio stack uses a combination of B-MAC and X-MAC.  Its behavior
is a lot like X-MAC in that transmissions get cut short, but the actual
detection of a transmitter is done more like B-MAC.  Think of it like X-MAC
on steroids.  We're calling it BoX-MAC.

 

The CC1000 radio stack primarily uses B-MAC at the moment. 

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tie Luo
Sent: Thursday, December 27, 2007 3:42 AM
To: [EMAIL PROTECTED]
Cc: tinyos-help@Millennium.Berkeley.EDU list
Subject: Re: [Tinyos-help] current MAC protocol in TinyOS

 

Hi, I was asking about TelosB with TinyOS 2.0. Thanks.

On Dec 20, 2007 12:30 AM, Avinash Sridharan [EMAIL PROTECTED]
wrote: 

Could be you be more specific about the platform and the version of TinyOS
you are using ? 

-Avinash

On Dec 18, 2007 8:23 PM, Tie Luo [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]  wrote:

Dear All,

Is the current MAC protocol in TinyOS B-MAC or X-MAC? I searched on
tinyos.net and it seems to be B-MAC. I just want to confirm. Thanks.

-- 
Regards,
Tie 

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




-- 
Phd Dept. of Electrical Engineering
University of Southern California
http://www-scf.usc.edu/~asridhar http://www-scf.usc.edu/%7Easridhar  




-- 
Regards,
Tie 

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

RE: [Tinyos-help] tinyos 2.x radio

2007-12-21 Thread David Moss
We hired some help to come in and build us a complete system.  The whole
thing took about a month to put together, scripts and all, and there may be
easier ways to go.

 

The system is composed of a pixie box (computer) hosting dual 24-bit 50kSps
DAQ's which record voltage measurements to a hard drive.  The two voltage
probes from the DAQ's are placed across a 1-ohm precision resistor, which is
in series with the battery and the hardware being tested.

 

Custom Matlab scripts are then used to process the raw data, converting the
voltage samples into units of mA and plotting it. From the plots, we can
select an area to integrate under the curve and find out information such as
average mA's consumed, mAh/day (as if the highlighted section were to run
all day long), microjoules, minimum mA's consumed, maximum mA's, etc.

 

We'd like to open it up to the public (Matlab code at least), but due to the
custom nature of the system it is somewhat difficult to do so.

 

-David

 

 

 

 

  _  

From: zhiyong yang [mailto:[EMAIL PROTECTED] 
Sent: Friday, December 21, 2007 2:49 AM
To: David Moss
Subject: Re: [Tinyos-help] tinyos 2.x radio

 

Hi: 

  I have a question. How did you measure  the energy  consumed by a node(or
its microcontroller or radio)? What's the tool(apparatus or instrument) you
used?
Thank you very much!
 

2007/12/19, David Moss [EMAIL PROTECTED]: 

The answer mostly depends on how noisy your network is.  

 

A CC2420 radio that is always left on (1.x) will consume ~462 mAh/day.  To
put this amount of power in perspective, your node will last about 3.6 days
on a 1700 mAh (cell phone) battery. 

 

Obviously if you have setup a network where all the CC2420 radios transmit
all the time, the radios are never going to get to sleep.  But by allowing
your nodes to duty cycle and quieting down that network, you can get your
power consumption down as low as 3-6 mAh/day pretty easily, somewhere around
1-5 second receive check intervals. At those limits, the microcontroller
becomes the largest consumer of energy on the node and not the radio.  In
one of my deployments, I managed to get the CC2420 radios to ~4 mAh/day -
that's about 425 days of lifetime for a 1700 mAh cell phone battery (not
taking into account internal losses of the battery, etc.). 

 

Take a look at the BMAC and XMAC papers for more information on the
trade-offs of power.

 

http://www.polastre.com/papers/sensys04-bmac.pdf

 

http://www.cs.colorado.edu/department/publications/reports/docs/CU-CS-1008-0
6.pdf

 

The CC2420 low power listening implementation is a combination of the BMAC
and XMAC strategies.

 

-David

 

 

 

 

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED] ] On Behalf Of roberto
pagliari
Sent: Tuesday, December 18, 2007 11:10 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] tinyos 2.x radio

 

Hi All,
I have a question concerning the radio stack of cc2420 in tinyos 2.x.
A low power listening is used, which means that the radio is turned off and
on periodically in order to detect a preamble sequence. Hence, the
transmitter broadcasts many times the packet to ensure reception to its
neighbors. The radio stack of tinyos 1.x, at least the version I've been
using, keeps the radio on all the time, and download the message from the
cc2420 as soon as a preamble is detected.

Is it possible to know, in terms of energy consumption and packet losses,
which is the best strategy? 

thanks

Roberto


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

 

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

RE: [Tinyos-help] Hardware Address Recognition

2007-12-19 Thread David Moss
Hi Tiago -

The TestPacketLink directory is for TUnit unit testing, and will not compile
or run under normal circumstances.

The interface itself should be easy to use:  simply use the PacketLink
interface in your BaseStation app, and wire it to CC2420ActiveMessageC.
You'll also need to define the preprocessor variable PACKET_LINK somewhere,
and I do it in my makefile (CFLAGS+=-DPACKET_LINK). That will compile in the
PacketLink layer into the CC2420 radio stack.



In your application, before your send a message over the radio, call
PacketLink to configure the message correctly:

// retry sending this message up to 50 times:
call PacketLink.setRetries(myMsg, 50); 

// Add a X millisecond delay between each message retry (0 is the default)
call PacketLink.setRetryDelay(myMsg, 0);

// Then send your message. It will be delivered more reliably than before.
call AMSend.send(addr, myMsg, sizeof(my_payload_t));


When you get your sendDone() event back, the message should have gotten
ack'd if the receiver was nearby.  

You'll have to experiment with the PacketLink interface to get the behavior
you desire for your application.  The TEP should cover the rest of the
details.

-David




-Original Message-
From: Tiago Camilo [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 19, 2007 10:20 AM
To: David Moss
Cc: 'André Miguel de Almeida Marrão Rodrigues';
tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] Hardware Address Recognition

Hi David,

I tried to search for the PacketLink component, but it seems not many 
people is using it, moreover it does not have any kind of reference in 
nesdoc, only the TEP.
I found the example of PacketLink, more specific TestPacketLink, in the 
tinyos-2.x-contrib folder and even after i update it, it still don't 
compile, since as far as i know is missing the file: TestCase.h.
Can you give us a clear example on how to use this component? or maybe 
send us the .h file, since i really need to write a reliable BaseStation 
application.
Thanks in adavance,
Tiago
Uniiversity of Coimbra
--
www.sounatural.com

David Moss wrote:
 Sure - you can modify the basestation application to retransmit if you
don't
 get an ack.  Take a look at the PacketLink component and interface, it
will
 help you do so automatically.  For my deployment applications where good
 connectivity is required, I've modified base station to use the PacketLink
 interface to automatically retry failed transmissions.

 The acks will not automatically retransmit your packet, but will let you
 know if a single send got through or not.  

 -David



 -Original Message-
 From: André Miguel de Almeida Marrão Rodrigues
 [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, December 13, 2007 3:04 PM
 To: David Moss; tinyos-help@Millennium.Berkeley.EDU
 Subject: Re: [Tinyos-help] Hardware Address Recognition

 Hi

   
 The base station does not automatically retransmit failed packets.
 
 It means that I should change the code of the standard basestation that 
 comes with T2.02?
 Includind adding buffer to allow retransmission of packets?

   interference - it's possible from wifi
   
 collisions - in this configuration I think they should be very few
 range - that's not an issue in this case
 mismatched duty cycling parameters, etc.  Did you modify your base
station
 
 application to configure the outbound packet for delivery to a duty
cycling
 receiver - yes we did

 So if the major problem is interference the acks shoudn't have resolved
it?

 Thanks,

 André Rodrigues


 -Original Message-
 From: André Miguel de Almeida Marrão Rodrigues
 [mailto:[EMAIL PROTECTED]
 Sent: Thursday, December 13, 2007 11:20 AM
 To: David Moss; 'André Cunha'; 'TinyOS ML'
 Subject: Re: [Tinyos-help] Hardware Address Recognition

 Hi

 I would like to know why in a simple configuration like

 BS --- Node

 I have packet loss when the acks are enabled and the code in the node
 retransmits
 the packed if it get lost. We are using 2% low power listening mode in T2
/
 TMote.

 Any ideias would be very apreciated.

 Regards,

 André Rodrigues

 PS: If a packet get lost in the BS - node direction, the 2.02 basestation
 code does
 the retransmission?


 - Original Message - 
 From: David Moss [EMAIL PROTECTED]
 To: 'André Cunha' [EMAIL PROTECTED]; 'TinyOS ML'
 tinyos-help@millennium.berkeley.edu
 Sent: Thursday, December 13, 2007 5:16 PM
 Subject: RE: [Tinyos-help] Hardware Address Recognition


   
 Address recognition is in both hardware and software.  You can disable
 address recognition in hardware to sniff packets, but with software
 acknowledgements enabled you don't want to send an ack back unless you've
 received a packet to your local address or to the broadcast address.
 That's
 why there's a redundant check.

 Hardware address recognition is enabled by default, and the redundant
 software address check performed for acknowledgements doesn't change
that.

 Note at the top of CC2420ControlP

RE: [Tinyos-help] CC2420ReceiveP RXFIFO.readDone

2007-12-19 Thread David Moss

1. FIFO and FIFOP are GPIO pins provided by the CC2420 radio.  These are
status pins, and I believe they're used to indicate data exists in the RX
FIFO that can be read out by the microcontroller.  The datasheet provides
more details.

2. If you haven't toggled the CSN line, and haven't used the SPI bus in any
other way, you should be able to safely call continueRead().  CC2420ReceiveP
(latest 2.x version), line 213, 218, and 266 do this.  If you've toggle the
CSN line or done anything else to the SPI bus, you must call beginRead() as
demonstrated on line 259.

3. You do need to read out the rest of the bad packet to reach the beginning
of the next packet in the RX FIFO.  Another option is to flush out the RX
FIFO, but then you risk losing any other packet that's in there.  Lines
199-233 of CC2420ReceiveP demonstrate beginning to receive a packet, and
cases where we don't want or care to receive the full packet because it's
bad. Lots of edge cases here, and some I know are broken.

-David




-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of André
Cunha
Sent: Wednesday, December 19, 2007 9:58 AM
To: TinyOS ML
Subject: [Tinyos-help] CC2420ReceiveP RXFIFO.readDone

Hello all,

I am trying to change the default code in RXFIFO.readDone in TOS2.0. 
I have some doubts on some parts of the code. I have some basic questions:

1. What is the meaning of the return of the following functions call 
FIFO.get() and call FIFOP.get()?
2. If I have more than one packet in the FIFO buffer do I use the 
RXFIFO.continueRead to read the next packet or can I use the 
RXFIFO.beginRead (without doing the flush)?
3. If I want to discard an bad packet or just one packet that does not 
fit some requirements (like the address) I need to call the 
RXFIFO.continueRead with the remaining length of the packet before 
reading a new one? Right?

Thanks for the help.
Best Regards
André
 
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help



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


RE: [Tinyos-help] tinyos 2.x radio

2007-12-18 Thread David Moss
The answer mostly depends on how noisy your network is.  

 

A CC2420 radio that is always left on (1.x) will consume ~462 mAh/day.  To
put this amount of power in perspective, your node will last about 3.6 days
on a 1700 mAh (cell phone) battery. 

 

Obviously if you have setup a network where all the CC2420 radios transmit
all the time, the radios are never going to get to sleep.  But by allowing
your nodes to duty cycle and quieting down that network, you can get your
power consumption down as low as 3-6 mAh/day pretty easily, somewhere around
1-5 second receive check intervals. At those limits, the microcontroller
becomes the largest consumer of energy on the node and not the radio.  In
one of my deployments, I managed to get the CC2420 radios to ~4 mAh/day -
that's about 425 days of lifetime for a 1700 mAh cell phone battery (not
taking into account internal losses of the battery, etc.).

 

Take a look at the BMAC and XMAC papers for more information on the
trade-offs of power.

 

http://www.polastre.com/papers/sensys04-bmac.pdf

 

http://www.cs.colorado.edu/department/publications/reports/docs/CU-CS-1008-0
6.pdf

 

The CC2420 low power listening implementation is a combination of the BMAC
and XMAC strategies.

 

-David

 

 

 

 

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of roberto
pagliari
Sent: Tuesday, December 18, 2007 11:10 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] tinyos 2.x radio

 

Hi All,
I have a question concerning the radio stack of cc2420 in tinyos 2.x.
A low power listening is used, which means that the radio is turned off and
on periodically in order to detect a preamble sequence. Hence, the
transmitter broadcasts many times the packet to ensure reception to its
neighbors. The radio stack of tinyos 1.x, at least the version I've been
using, keeps the radio on all the time, and download the message from the
cc2420 as soon as a preamble is detected.

Is it possible to know, in terms of energy consumption and packet losses,
which is the best strategy? 

thanks

Roberto

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

RE: [Tinyos-help] Hardware Address Recognition

2007-12-14 Thread David Moss
Sure - you can modify the basestation application to retransmit if you don't
get an ack.  Take a look at the PacketLink component and interface, it will
help you do so automatically.  For my deployment applications where good
connectivity is required, I've modified base station to use the PacketLink
interface to automatically retry failed transmissions.

The acks will not automatically retransmit your packet, but will let you
know if a single send got through or not.  

-David



-Original Message-
From: André Miguel de Almeida Marrão Rodrigues
[mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 13, 2007 3:04 PM
To: David Moss; tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] Hardware Address Recognition

Hi

The base station does not automatically retransmit failed packets.
It means that I should change the code of the standard basestation that 
comes with T2.02?
Includind adding buffer to allow retransmission of packets?

  interference - it's possible from wifi
 collisions - in this configuration I think they should be very few
 range - that's not an issue in this case
 mismatched duty cycling parameters, etc.  Did you modify your base station
application to configure the outbound packet for delivery to a duty cycling
receiver - yes we did

So if the major problem is interference the acks shoudn't have resolved it?

Thanks,

André Rodrigues


-Original Message-
From: André Miguel de Almeida Marrão Rodrigues
[mailto:[EMAIL PROTECTED]
Sent: Thursday, December 13, 2007 11:20 AM
To: David Moss; 'André Cunha'; 'TinyOS ML'
Subject: Re: [Tinyos-help] Hardware Address Recognition

Hi

I would like to know why in a simple configuration like

BS --- Node

I have packet loss when the acks are enabled and the code in the node
retransmits
the packed if it get lost. We are using 2% low power listening mode in T2 /
TMote.

Any ideias would be very apreciated.

Regards,

André Rodrigues

PS: If a packet get lost in the BS - node direction, the 2.02 basestation
code does
the retransmission?


- Original Message - 
From: David Moss [EMAIL PROTECTED]
To: 'André Cunha' [EMAIL PROTECTED]; 'TinyOS ML'
tinyos-help@millennium.berkeley.edu
Sent: Thursday, December 13, 2007 5:16 PM
Subject: RE: [Tinyos-help] Hardware Address Recognition


 Address recognition is in both hardware and software.  You can disable
 address recognition in hardware to sniff packets, but with software
 acknowledgements enabled you don't want to send an ack back unless you've
 received a packet to your local address or to the broadcast address.
 That's
 why there's a redundant check.

 Hardware address recognition is enabled by default, and the redundant
 software address check performed for acknowledgements doesn't change that.

 Note at the top of CC2420ControlP the compile time options you have
 available (you should be able to configure these at runtime as well)

 #if defined(CC2420_NO_ACKNOWLEDGEMENTS)
autoAckEnabled = FALSE;
 #else
autoAckEnabled = TRUE;
 #endif

 #if defined(CC2420_HW_ACKNOWLEDGEMENTS)
hwAutoAckDefault = TRUE;
 #else
hwAutoAckDefault = FALSE;
 #endif

 // This changes the hardware address recognition.
 #if defined(CC2420_NO_ADDRESS_RECOGNITION)
addressRecognition = FALSE;
 #else
addressRecognition = TRUE;
 #endif

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of André
 Cunha
 Sent: Thursday, December 13, 2007 9:21 AM
 To: TinyOS ML
 Subject: [Tinyos-help] Hardware Address Recognition

 Hello all,
I was looking at the hardware recognition in the CC2420 in the file
 CC2420ControlP and, if fact, the CC2420 register (MDMCTRL0-ADDR_DECODE)
 is enabled. Looking at the CC2420ReceiveP in the RXFIFO.readDone I
 realized that the address verification is by software. Can anyone
 clarify this? I have changed the code of RXFIFO.readDone to only signal
 data reception but I would like to activate the hardware address
 recognition.

 Best Regards,

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



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






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


RE: [Tinyos-help] Hardware Address Recognition

2007-12-13 Thread David Moss
Address recognition is in both hardware and software.  You can disable
address recognition in hardware to sniff packets, but with software
acknowledgements enabled you don't want to send an ack back unless you've
received a packet to your local address or to the broadcast address. That's
why there's a redundant check.

Hardware address recognition is enabled by default, and the redundant
software address check performed for acknowledgements doesn't change that.

Note at the top of CC2420ControlP the compile time options you have
available (you should be able to configure these at runtime as well)

#if defined(CC2420_NO_ACKNOWLEDGEMENTS)
autoAckEnabled = FALSE;
#else
autoAckEnabled = TRUE;
#endif

#if defined(CC2420_HW_ACKNOWLEDGEMENTS)
hwAutoAckDefault = TRUE;
#else
hwAutoAckDefault = FALSE;
#endif

// This changes the hardware address recognition.
#if defined(CC2420_NO_ADDRESS_RECOGNITION)
addressRecognition = FALSE;
#else
addressRecognition = TRUE;
#endif

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of André
Cunha
Sent: Thursday, December 13, 2007 9:21 AM
To: TinyOS ML
Subject: [Tinyos-help] Hardware Address Recognition

Hello all,
I was looking at the hardware recognition in the CC2420 in the file 
CC2420ControlP and, if fact, the CC2420 register (MDMCTRL0-ADDR_DECODE) 
is enabled. Looking at the CC2420ReceiveP in the RXFIFO.readDone I 
realized that the address verification is by software. Can anyone 
clarify this? I have changed the code of RXFIFO.readDone to only signal 
data reception but I would like to activate the hardware address 
recognition.

Best Regards,

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



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


RE: [Tinyos-help] Hardware Address Recognition

2007-12-13 Thread David Moss
The base station does not automatically retransmit failed packets.  

There could be a lot of issues here: interference, collisions, range,
mismatched duty cycling parameters, etc.  Did you modify your base station
application to configure the outbound packet for delivery to a duty cycling
receiver?

-David


-Original Message-
From: André Miguel de Almeida Marrão Rodrigues
[mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 13, 2007 11:20 AM
To: David Moss; 'André Cunha'; 'TinyOS ML'
Subject: Re: [Tinyos-help] Hardware Address Recognition

Hi

I would like to know why in a simple configuration like

BS --- Node

I have packet loss when the acks are enabled and the code in the node 
retransmits
the packed if it get lost. We are using 2% low power listening mode in T2 / 
TMote.

Any ideias would be very apreciated.

Regards,

André Rodrigues

PS: If a packet get lost in the BS - node direction, the 2.02 basestation 
code does
the retransmission?


- Original Message - 
From: David Moss [EMAIL PROTECTED]
To: 'André Cunha' [EMAIL PROTECTED]; 'TinyOS ML' 
tinyos-help@millennium.berkeley.edu
Sent: Thursday, December 13, 2007 5:16 PM
Subject: RE: [Tinyos-help] Hardware Address Recognition


 Address recognition is in both hardware and software.  You can disable
 address recognition in hardware to sniff packets, but with software
 acknowledgements enabled you don't want to send an ack back unless you've
 received a packet to your local address or to the broadcast address. 
 That's
 why there's a redundant check.

 Hardware address recognition is enabled by default, and the redundant
 software address check performed for acknowledgements doesn't change that.

 Note at the top of CC2420ControlP the compile time options you have
 available (you should be able to configure these at runtime as well)

 #if defined(CC2420_NO_ACKNOWLEDGEMENTS)
autoAckEnabled = FALSE;
 #else
autoAckEnabled = TRUE;
 #endif

 #if defined(CC2420_HW_ACKNOWLEDGEMENTS)
hwAutoAckDefault = TRUE;
 #else
hwAutoAckDefault = FALSE;
 #endif

 // This changes the hardware address recognition.
 #if defined(CC2420_NO_ADDRESS_RECOGNITION)
addressRecognition = FALSE;
 #else
addressRecognition = TRUE;
 #endif

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of André
 Cunha
 Sent: Thursday, December 13, 2007 9:21 AM
 To: TinyOS ML
 Subject: [Tinyos-help] Hardware Address Recognition

 Hello all,
I was looking at the hardware recognition in the CC2420 in the file
 CC2420ControlP and, if fact, the CC2420 register (MDMCTRL0-ADDR_DECODE)
 is enabled. Looking at the CC2420ReceiveP in the RXFIFO.readDone I
 realized that the address verification is by software. Can anyone
 clarify this? I have changed the code of RXFIFO.readDone to only signal
 data reception but I would like to activate the hardware address
 recognition.

 Best Regards,

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



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




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


RE: [Tinyos-help] Tunit setup on osx: serial port in tos-bsl problem

2007-12-11 Thread David Moss
Looks like you have a space between bsl, and the com port identifier

 

  mote target=telosb
motecom=serial@/dev/tty.usbserial-M4AJRG09:telosb installextras=bsl,
133/

 

You can see from the tos-bsl line TUnit is trying to execute that it doesn't
know what's going on:

 

tos-bsl --telosb -c ?-r -e -I -p build/telosb/main.ihex.out-0

 

Note the ? in that line is supposed to be the BSL com port identifier, 133.
Correct this by modifying your tunit.xml to remove the space:

 

  mote target=telosb
motecom=serial@/dev/tty.usbserial-M4AJRG09:telosb
installextras=bsl,133/

 

-David

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Matthias
Woehrle
Sent: Monday, December 10, 2007 9:19 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] Tunit setup on osx: serial port in tos-bsl problem

 

Hi,

 

I got a problem concerning setting up Tunit on my macbook (osx-tiger). I run
Kevin Klues' setup (
http://docs.google.com/View?docid=ajjph9mvqk3z_bchp66xkmgk6npli=1
http://docs.google.com/View?docid=ajjph9mvqk3z_bchp66xkmgk6npli=1).

 

The specific problem is that when the bootstraploader is executed, the
serial port is not set (in my case:/dev/tty.usbserial-M4AJRG09, a tmote).

 

[java] installing telosb binary using bsl

[java] tos-bsl --telosb -c -r -e -I -p build/telosb/main.ihex.out-0

...

[java] MSP430 Bootstrap Loader Version: 1.39-telos-8

 

[java] An error occoured:

[java] could not open port: [Errno 2] No such file or directory: '-r'

[java] make: *** [program] Error 1

 

However, serial forwarder initialization works before that:

[java] 160 [main] DEBUG com.rincon.tunit.run.TestRunManager - Creating
serial forwarder serial@/dev/tty.usbserial-M4AJRG09:telosb

[java] 205 [Thread-1] DEBUG com.rincon.tunit.sf.Sf -
serial@/dev/tty.usbserial-M4AJRG09:telosb.9100:
serial@/dev/tty.usbserial-M4AJRG09:115200: resynchronising

[java] 205 [Thread-1] DEBUG com.rincon.tunit.run.TestRunManager -
serial@/dev/tty.usbserial-M4AJRG09:115200: resynchronising

[java] 208 [main] DEBUG com.rincon.tunit.run.TestRunManager - Disconnecting
all serial forwarders

[java] 2220 [Thread-0] DEBUG com.rincon.tunit.sf.Sf -
serial@/dev/tty.usbserial-M4AJRG09:telosb.9100: server stopped

[java] 3221 [main] DEBUG com.rincon.tunit.run.TestRunManager - Serial
forwarders initialized successfully

 

Some output from the ant execution is attached for debug as well as my
build.xml and the tunit.xml.

Note that the build.xml is patched with a fork in order toaccommodatefor a
problem with osx'sAquaLookAndFeel.

 

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

RE: [Tinyos-help] How to send tones over CC2420?

2007-11-15 Thread David Moss
Modify the TX_MODE setting in the MDMCTRL1 register to enable the infinite
retransmissions test mode.  This will continuously retransmit the contents
of the TXFIFO.

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Alban
Hessler
Sent: Wednesday, November 14, 2007 5:47 PM
To: Yashesh Mankad
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] How to send tones over CC2420?

 

I have never done it, but I think, to do that you will have to put the
CC2420 chip in debug mode. This is not support by tinyOS AFAIK, but I might
be wrong. Because this is not useful for tinyOS, we just want to transmit
packets. 

You should start reading the datasheet of the radio chip, and see if sending
tone is possible. I think you will have to write your own driver for that..

Best regards,

Alban

2007/11/3, Yashesh Mankad [EMAIL PROTECTED]:

Hi guys,

I have joined the forum just recently  am new to the world of NesC.

I am working on efficient jamming of 802.11 networks usinf sensor nodes.
I am using the motiev Telosb mote with the CC2420 radio. 

I wanted to try sending continous tones through the radio. Can anyone tell
me how to do this? Or can you tell me which interface do I look out for this
purpose in the apps directory

Thanks
Yashesh.

  _  

Now you can chat without downloading messenger. Click here
http://in.rd.yahoo.com/tagline_webmessenger_5/*http:/in.messenger.yahoo.com
/webmessengerpromo.php  to know how.


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

 

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

[Tinyos-help] Basestation - tinyos 2.0.1 vs 2.0.2

2007-11-08 Thread David Moss
Yup.  BaseStationCC2420 is deprecated because the CC2420 stack has the
ability to enable/disable auto-acks and address recognition at compile time.
There's no longer a need to maintain two separate portions of the CC2420
stack.

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Thursday, November 08, 2007 12:22 PM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Copfilter] Copy of quarantined email - *** SPAM ***
[11.6/5.0][Tinyos-help] Basestation - tinyos 2.0.1 vs 2.0.2

Just checking, did BasestationCC2240 get removed from 2.0.1 when updating to

2.0.2?  I just installed 2.0.2 and that directory seemed to go away...
Kurt


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



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Scanned with Copfilter Version 0.84beta2 (ProxSMTP 1.6)
AntiVirus: ClamAV 0.91.2-exp/4711 - Thu Nov  8 19:19:47 2007
AntiVirus: F-PROT 4.6.7 Engine version: 3.16.15
SIGN.DEF 7 Nov07 - SIGN2.DEF 7 Nov07 - MACRO.DEF 7 Nov07
by Markus Madlener @ http://www.copfilter.org


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


[Tinyos-help] RE: about Blaze CC1100 radio stack

2007-11-06 Thread David Moss
There are some docs available in tinyos-2.x-contrib\blaze\docs, showing the
architecture of the Blaze radio stack. It's not dependent upon
microcontroller, but your platform does need to have some wiring and stuff
setup.  This must be done manually.

 

To start, take a look at the
tinyos-2.x-contrib\blaze\tos\platforms\tmote1100 directory. This is an
example platform I hacked together by attaching a CC1100 to a tmote's SPI
bus - you can create your own platform as well (be sure to make a
corresponding .target file in tinyos-2.x/support/make before trying to
compile - there are tutorials on how to do this somewhere).  

 

To tell the code how the radio is actually connected to the microcontroller,
you need to edit the equivalent of
tinyos-2.x-contrib\blaze\tos\platforms\XYZ\chips\ccxx00.  Each module or
configuration here tells the source code how the radio is physically
connected - including interrupts, SPI bus, and GPIO's.  You'll have to make
a version of that for the atmega microcontroller, and to do that I recommend
you look at the tinyos-2.x/tos/platforms/micaz/chips/cc2420.  The CCxx00
radio's platform-dependent code follows the CC2420 stuff closely.

 

Because this is a dual-radio stack, your platform will need to include at
compile time the radio type you want to use.  I did this in
tinyos-2.x-contrib\blaze\tos\platforms\XYZ\ActiveMessageC.nc by referencing
the component CC1100ControlC.  If you wanted to use the CC2500, or both,
you'd reference CC2500ControlC.  Finally, you'll also need to make sure
your tinyos-2.x-contrib\blaze\tos\platforms\XYZ\.platform file includes all
the correct directories at compile time.

 

It's a task to port this to a new platform, but examples already exist all
over the place so hopefully it won't be so bad.  Really look at that micaz
platform code for the CC2420 to see what it's doing, and then use the CC1100
platform code examples to port it over in the micaz mindset.

 

-David

 

 

 

 

  _  

From: jiwen zhang [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 06, 2007 4:44 AM
To: David Moss
Subject: Re: about Blaze CC1100 radio stack

 

Hello David :

   Thank you very much ,now I have downloaded the source code. can you give
some descriptions about project Blaze? what is the structure of blaze? I
learn it was designed for microprocessor MSP430? If I want to  transplant it
to Atmega128L, what should I do?can you give me some suggestions? thank you
very much!! 

 

2007/11/5, David Moss [EMAIL PROTECTED]: 

Hi Jiwen -

 

Yes, we have been finishing up the development of the CC1100/CC2500 radio
stack, blaze.  You can download it directly from CVS from the tinyos-2.x
project, under its tinyos-2.x-contrib module. 

 

The directions for downloading CVS are at


http://sourceforge.net/cvs/?group_id=28656

 

And you could use a command like:

cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/tinyos co
-P tinyos-2.x-contrib 

 

-David

 

 

 

 

 

 

 

  _  

From: jiwen zhang [mailto: [EMAIL PROTECTED] 
Sent: Monday, November 05, 2007 12:43 AM 
To: [EMAIL PROTECTED]
Subject: about Blaze CC1100 radio stack

 

Hello :

I am doing research about wireless sensor network ,recently we designed
a kind of mote with Atmega128+cc1100, but there is no supporting in tinyos
which made me very dispointed. 

   Accidentally I find a project named Blaze CC1100 radio stack  in
www.tinyos.net http://www.tinyos.net/ , it provides supporting for cc1100
in tinyos, I really get the source code ,but i can't get a way to download
it .I want to know whether it is free. can you give me a  straightforward
address to download it . Thank you very much. 

 

 

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

RE: [Tinyos-help] CTP with and without LPL enabled on MicaZ

2007-11-02 Thread David Moss
Although the LOW_POWER_LISTENING compiler flag will add in the low power
listening layer into the radio stack, some other functionality needs to
exist to tell it what to do.

Currently, CTP does not instruct the radio stack to use low power listening.
To make it happen, right now developers have to manually edit the CTP
library, accessing the LowPowerListening interface and setting up parameters
like LowPowerListening.setLocalSleepInterval(ms) and
LowPowerListening.setRxSleepInterval(msg, ms).

We're somewhat in the process of developing a layer that will automatically
configure CTP packets (and others) for some default low power listening
usage model, but it's looking to be awhile before it's complete.
 
-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Xiaofan
Jiang
Sent: Friday, November 02, 2007 3:41 PM
To: Tinyos Help
Subject: [Tinyos-help] CTP with and without LPL enabled on MicaZ

Hi,

I'm trying to run some power measurements of motes running CTP  
collection with and without LPL enabled (on the MicaZ). However, I  
don't seem to see any difference. In this picture -
http://buzzing.cs.berkeley.edu/~xjiang/webfiles/NOLPLvsLPL.png 
, the left is without LPL and the right is with. The lines with  
positive slopes are energies and the flat ones are powers, of four  
different motes.

Does anyone know if I need to do anything other than including  
LOW_POWER_LISTENING in the CFLAGS in the Makefile to enable LPL?  
Also has anyone had any experiences with LPL on MicaZs?

Thanks!
-Fred
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] successive messages in LPL - do they use the preamble or do they not need to?

2007-10-31 Thread David Moss
In TinyOS 2.0.1 the Ack LPL version should not stop sending its wake-up
transmission to the broadcast address, ensuring all nodes in the vicinity
receive the broadcast packet. The LPL layer, when sending to the broadcast
address, disables acknowledgement requests and shouldn't even check
acknowledgements on its internal sendDone() events.

Preambles, or more aptly named wake-up transmissions are packetized
(there's nothing preamble about it).  In the TinyOS 2.0.1 Ack version, on
the other hand, will simply transmit the packet it is trying to actually
deliver. If acknowledged right away, it stops. In this sense it's just
transmitting at 100% throughput. The NoAck LPL version will initiate
another full wake-up transmission lasting the duration of a receive check.  

You're correct in assuming that a more efficient method for the NoAck
version is for it to realize that because it just delivered a packet to a
node, it should send the next packet with no packetized wake-up
transmission. I'll ensure this gets documented.

-David




-Original Message-
From: Murray, Ben [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 31, 2007 1:44 AM
To: 'David Moss'; Murray, Ben; 'Tinyos help Forum (E-mail)'
Subject: RE: [Tinyos-help] successive messages in LPL - do they use the
preamble or do they not need to?

Will/Should the second send initiate a second preamble within LPL or
will/should LPL decide to send the message straight away (can't really use
the ACK'd LPL as a number of the messages are basically broadcast so if I
ACK then I run the risk of only the node that ACK'd receiving properly if
the rest wake at different times). Ideally it would realise it had recently
(or recently-enough) performed a long preamble so could just start
transmitting straight away?

thanks for the replies!
-Ben


 -Original Message-
 From: David Moss [mailto:[EMAIL PROTECTED]
 Sent: 30 October 2007 19:25
 To: 'Murray, Ben'; 'Tinyos help Forum (E-mail)'
 Subject: RE: [Tinyos-help] successive messages in LPL - do 
 they use the
 preamble or do they not need to?
 
 
 If you get a sendDone() event and call your next send() event quickly
 (within tens of milliseconds) then both radios will still be 
 awake and you
 will be communicating at 100% throughput. Both radios will 
 remain active as
 long as there is useful communication taking place.  In this manner,
 multiple packets will be received during the same wake-up period.
 
 -David
 
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On 
 Behalf Of Murray,
 Ben
 Sent: Tuesday, October 30, 2007 10:48 AM
 To: Tinyos help Forum (E-mail)
 Subject: [Tinyos-help] successive messages in LPL - do they 
 use the preamble
 or do they not need to?
 
 [tos2, micaz]
 
 When using low power listening if I wish to send two packets 
 over the radio,
 it is there a special way in which I can make sure they will 
 both be sent
 after the same preamble such that all receiving motes that 
 caught preamble
 in front of the first message also received the subsequent 
 second message
 before they go to sleep again on will LPL/TOS take care of 
 this internally?
 
 i.e. if my code look something like this:
 setRxSleepInterval(500)
 send(pkt1) -- senddone (confirming send accepted for pkt1)
 send(pkt2) (does this have to wait for the senddone from pkt1 
 or will it be
 put in a queue?
 
 Will a LPL node that wakes during the preamble receive both 
 pkt1 and pkt2
 during the same transmission in quick succession for (or at 
 least during te
 same wake period)
 
 Many Thanks
 Ben
 
 
 
 **
 **
 ***
 Please consider the environment before printing this email.
 **
 **
 ***
 This email and any files transmitted with it are intended 
 solely for the use
 of
 the individual or entity to whom they are addressed and may 
 not be divulged
 to
 any third party without the express permission of the 
 originator.  Any views
 expressed in this message are those of the individual sender, 
 except where
 the
 sender specifically states them to be the views of Thales Research 
 Technology
 (UK) Limited.
 **
 **
 ***
 
 ___
 Tinyos-help mailing list
 Tinyos-help@Millennium.Berkeley.EDU
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/t
inyos-help



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


RE: [Tinyos-help] Bug in CC2420 timestamp

2007-10-31 Thread David Moss
2 edge cases:

1)  A packet is received, generating a timestamp. The packet is dropped
internally to CC2420 hardware, while a second packet is received which
generates a second timestamp. The older timestamp is applied to the newer
packet.

2)  A corrupted packet is received, forcing the CC2420 driver to flush
out the RX FIFO. The timestamp queue is possibly not flushed. The next
packet received gets a corrupted timestamp.

Both of these edge cases can be reproduced on a single node through the use
of unit tests. After reproducing the errors with unit testing, we can
engineer a solution and use those tests to know when the problem has been
solved. 

One possible solution, which is what you may have been leading to: We can
generate a second timestamp for the end of frame SFD interrupt. Comparing
the SFD with EFD timestamps, we know if the duration of the packet was too
short and discard the timestamp. There are probably more reliable solutions
though.

How does comparing msg-time to the CC2420Receive.sfd( uint16_t time )
'time' value tell you that the timestamp should be discarded? That 'time'
value from the SFD interrupt gets stored in the timestamp queue before being
propagated to msg-time. Is there a 3rd issue here where msg-time is not
being set correctly to the latest value from the timestamp queue?

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jeongyeup
Paek
Sent: Wednesday, October 31, 2007 9:37 AM
To: Min Guo
Cc: Federico Fiorentin; tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] Bug in CC2420 timestamp


I am also having the same problem: incorrect timestamps.
This happens more often when there are more nodes sending more packets.
(which means more more sfd interrupts)

As Miklos said, the problem is not overflow but mismatch between
the timestamp(at sfd interrup) and the received packet.
As Federico said, the incorrect time is always in the past.
 From these experience, we can guess that something is going wrong
in the management of timestamp_queue[] in CC2420ReceiveP.nc.

One way to check whether I have a wrong time or not is,
- when I get receive sfd signal, write down the 'uint16_t time16'.
- later, when I get a packet, compare 'time16' with 'msg-time'.
   If they do not match, something went wrong... should discard.

One thing I am going to try today is to increase the size of
timestamp_queue[] in CC2420ReceiveP.nc: 8 -- 32;
since it might just be because of queue wrapping around.
Right now, there is no protection for 'head' and 'tail'
pointers for timestamp_queue[].

Thanks

- jpaek


Min Guo wrote:
 Hi Federico,
 
 I met the same problem. I've written a time synchronization component
 for TinyOS 2.x. Currently some (very few) synchronization messages are
 discarded because of the error of metadata-time (earlier than
 expected).
 
 Hope some one can point out the reason.
 
 Regards,
 Min
 
 On 10/31/07, Federico Fiorentin [EMAIL PROTECTED] wrote:
 Hi all.
 The issues is the 16-bit timestamp in the received packet somethimes
 results incorrect, in that case the time result always less than what
 I aspect.
 Probably the the timestamp refers to the previous SFD signal.

 I tried to compare that timestmap against the time argument of the
 RadioTimeStamp.receivedSFD(uint16_t time){ }. When the timestamp is
 correct generally they are equal,  in the other cases the
 RadioTimeStamp result more precise.

 Using:
 RadioTimeStamp.receivedSFD(uint16_t time){ }
 Now the problem is how can I determine to which kind of packet the SFD
 event is referred.

 Federico

 2007/10/30, Miklos Maroti [EMAIL PROTECTED]:
 Hi David,

 The problem is not that it overflows, but it contains an inccorect
 value. In certain situations there are more packets in the RXFIFO and
 we do not know how to pair up the timestamps made for the SFD and the
 data packets. This is especially problematic if for some reason some
 of those packets get lost or not even get into the RXFIFO.

 We should start a discussion on the Timestamping interface. I think it
 should be allowed for the radio stack to say that it could not
 properly timestamp the packet (just a flag) and the time synch apps
 should check for that flag.

 Miklos

 On 10/30/07, David Moss [EMAIL PROTECTED] wrote:
 I haven't done much work with the timestamps in the CC2420 apart from
 Jonathan's original implementation, nor have I used it enough to have
 experienced any type of erratic behavior.  Is the issue here that the
16-bit
 timestamp rolls over to 0 periodically?  Would a 32-bit timestamp be
better?

 -David


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of
Federico
 Fiorentin
 Sent: Tuesday, October 30, 2007 6:39 AM
 To: tinyos-help@Millennium.Berkeley.EDU
 Subject: [Tinyos-help] Bug in CC2420 timestamp

 I'm working on time synchronization with tmote sky motes and TinyOS2.

 I'm using a poller that sends a PollPacket every X milliseconds

RE: [Tinyos-help] checking the radio status when using low powerlistening?

2007-10-30 Thread David Moss
RECEIVE CHECK / RADIO POWER:
In 2.0.2 (and possibly earlier versions) the PowerCycleC configuration
provides two State interfaces:

interface State as SplitControlState;
interface State as RadioPowerState;

The State enumerator, which should actually be located in a header file and
not the PowerCycleP module, looks like this:

  enum {
S_OFF, // off by default
S_TURNING_ON,
S_ON,
S_TURNING_OFF,
  };

The RadioPowerState interface can only be S_ON or S_OFF according to the
PowerCycleP code.  And the SplitControlState can be any of the 4 states.

So, tap into PowerCycleC's State interfaces and you can query the state of
the radio:

  call RadioPowerState.isState(S_ON);
  call SplitControlState.getState();
  etc...



TRANSMISSIONS:
The DefaultLplC configuration provides a similar interface for the Send side
of things:

  interface State as SendState;

Its State enum is in the DefaultLpl.h file:

  typedef enum {
S_LPL_NOT_SENDING,// DEFAULT
S_LPL_FIRST_MESSAGE,  // 1. Sending the first message
S_LPL_SENDING,// 2. Sending all other messages
S_LPL_CLEAN_UP,   // 3. Clean up the transmission
  } lpl_sendstate_t;


-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Tuesday, October 30, 2007 3:10 AM
To: Tinyos help Forum (E-mail)
Subject: [Tinyos-help] checking the radio status when using low
powerlistening?

Hi

is there a quick and concise way to check whether the radio is on/active
when using low power listening?  For example, if I wanted to shut the radio
off fully (AMControl.stop()) but only if I was certain LPL was not in the
middle of detecting energy or receiving a packet and had initiated or
completed its own radio turn off action. Something along the lines of
Timer.IsRunning() perhaps?

Regards
Ben





***
Please consider the environment before printing this email.

***
This email and any files transmitted with it are intended solely for the use
of
the individual or entity to whom they are addressed and may not be divulged
to
any third party without the express permission of the originator.  Any views
expressed in this message are those of the individual sender, except where
the
sender specifically states them to be the views of Thales Research 
Technology
(UK) Limited.

***

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


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


RE: [Tinyos-help] shorter (cc2420/telosb) radio range in t2 compared tot1?

2007-10-30 Thread David Moss
Here's one possible explanation: the CSMA backoff changed between T1 and T2.

In T1, the CSMA backoff wasn't very fair, allowing one transmitter to
possibly hog the channel.  The CSMA congestion and initial backoffs were
flipped in T2, making the initial backoff longer and the congestion backoff
shorter.  This causes less throughput but an increase in fairness.

This brings up a good point though: more energy is consumed in T2 to deliver
the same amount of information because throughput is diminished. We should
explore turning the radio to IDLE during CSMA backoff wait periods to see
how that impacts energy consumption and throughput.
 
-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jeongyeup
Paek
Sent: Tuesday, October 30, 2007 12:33 AM
To: tinyos-help
Subject: [Tinyos-help] shorter (cc2420/telosb) radio range in t2 compared
tot1?

Dear all.

I am running a very simple test applications where
40 nodes are broadcasting packets every 10 sec,
and a BaseStation node is listening to those packets.

And I am receiving far less packets in t2, compared to t1,
for (what I believe to be) the same application.
So I was wondering whether anyone had experienced
shorter radio range in t2 compared to t1.

The exact scenario is, 40 telosb nodes,
with  without 'CFLAGS += -DCC2420_DEF_RFPOWER=31',
on an indoor testbed (http://enl.usc.edu/projects/tutornet/)
where node 1~40 are sending broadcasts and node 10 is the BaseStation.
I ran experiments several times, for several tens of minutes each time,
and tried channel 23 and 26.
Also, although I am new to T2, I have some experiences with T1.

In T1, I receive packets from 15~20 nodes on average.
In T2, I receive packets from 8~12 nodes on average.

And the only guess that I can think of
(assuming that I've done t1-t2 poring correctly)
is shorter radio range in t2 compared to t1 for some weird reason.

is this possible?

-- 
Jeongyeup Paek
Ph.D. student
Embedded Networks Laboratory
Department of Computer Science
University of Southern California
http://enl.usc.edu/~jpaek
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] Bug in CC2420 timestamp

2007-10-30 Thread David Moss
I haven't done much work with the timestamps in the CC2420 apart from
Jonathan's original implementation, nor have I used it enough to have
experienced any type of erratic behavior.  Is the issue here that the 16-bit
timestamp rolls over to 0 periodically?  Would a 32-bit timestamp be better?

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Federico
Fiorentin
Sent: Tuesday, October 30, 2007 6:39 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] Bug in CC2420 timestamp

I'm working on time synchronization with tmote sky motes and TinyOS2.

I'm using a poller that sends a PollPacket every X milliseconds and a
set of clients that timestamp the arrival time of the PollPacket.
I found that the 16 timestamp in the time field of the Metadata are
somethimes incorrect ( CC2420Packet.getMetaData(msg)-time ).

This affects the 1% of the TimeStamps per mote.
I compared the value timestamp(n) - timestamp(n-1) of two different motes.

Is there any patch or a way to fix it?

I appreciate any advice
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] Question abouttinyos-2.x/apps/tests/cc2420/RssiToSerial

2007-10-30 Thread David Moss
You may have to take this application as an example and convert it to
provide the information you're looking for.  This app's original intention
was to give you a warm fuzzy feeling about RSSI coming out of the CC2420.

 

Page 49 of the CC2420 data sheet offers more information about RSSI and what
it means:

 

The RSSI register value RSSI.RSSI_VAL

can be referred to the power P at the RF

pins by using the following equations:

 

P = RSSI_VAL + RSSI_OFFSET [dBm]

 

where the RSSI_OFFSET is found

empirically during system development

from the front end gain. RSSI_OFFSET is

approximately -45. E.g. if reading a value

of -20 from the RSSI register, the RF

input power is approximately -65 dBm.

 

On the embedded side of this application, we're simply streaming raw RSSI
values from the radio and sending them in a packet through the serial port.
The Java side accepts those packets, does some GUI-friendly mangling to the
RSSI value, and displays the bar graph.

 

If you're going to start anywhere, I'd recommend editing the Java
application to print out the raw RSSI values to the screen perhaps, or using
the equation from the datasheet to convert them to [dBm]. It's a pretty easy
hack.

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of sergio
mena doce
Sent: Tuesday, October 30, 2007 3:24 AM
To: tinyos-help@millennium.berkeley.edu
Subject: [Tinyos-help] Question
abouttinyos-2.x/apps/tests/cc2420/RssiToSerial

 

Hello.

I'm a telecommunications engineering degree student from Barcelona (Spain).
I'm working with tinyos-2.x under Linux. I have a question executing the
RssiToSerial application. As you would can know, RssiToSerial shows by
console strings like the following:
[+++   ]

When there isn't transmitter activity it shows:
[+++   ]

In the file README.txt of the RssiToSerial tells that since the Java side
has to convert the readings into a CLI bar graph, it's scaled by some
(possibly non-linear) factor.  
Is there any way to read the Rssi in dBm's, dBW,s or some units to measure
the power of the Rssi? What does mean each '+' additive char of the string?

Thanks by your help.

  _  

Express yourself instantly with MSN Messenger! MSN
http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/  Messenger

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

RE: [Tinyos-help] successive messages in LPL - do they use the preamble or do they not need to?

2007-10-30 Thread David Moss
If you get a sendDone() event and call your next send() event quickly
(within tens of milliseconds) then both radios will still be awake and you
will be communicating at 100% throughput. Both radios will remain active as
long as there is useful communication taking place.  In this manner,
multiple packets will be received during the same wake-up period.

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Tuesday, October 30, 2007 10:48 AM
To: Tinyos help Forum (E-mail)
Subject: [Tinyos-help] successive messages in LPL - do they use the preamble
or do they not need to?

[tos2, micaz]

When using low power listening if I wish to send two packets over the radio,
it is there a special way in which I can make sure they will both be sent
after the same preamble such that all receiving motes that caught preamble
in front of the first message also received the subsequent second message
before they go to sleep again on will LPL/TOS take care of this internally?

i.e. if my code look something like this:
setRxSleepInterval(500)
send(pkt1) -- senddone (confirming send accepted for pkt1)
send(pkt2) (does this have to wait for the senddone from pkt1 or will it be
put in a queue?

Will a LPL node that wakes during the preamble receive both pkt1 and pkt2
during the same transmission in quick succession for (or at least during te
same wake period)

Many Thanks
Ben




***
Please consider the environment before printing this email.

***
This email and any files transmitted with it are intended solely for the use
of
the individual or entity to whom they are addressed and may not be divulged
to
any third party without the express permission of the originator.  Any views
expressed in this message are those of the individual sender, except where
the
sender specifically states them to be the views of Thales Research 
Technology
(UK) Limited.

***

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


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


[Tinyos-help] RE: Using blaze

2007-10-08 Thread David Moss
Hi Gustavo,

First off, glad to see someone trying out this radio stack even though
there's no commercial hardware available.

I think the main problem here is the TinyOS 2.x baseline interfaces recently
changed and are not compatible with TinyOS-2.0.2.  The AMPacket, Packet,
AMSend, etc. interfaces are different, and the Blaze radio stack is
compatible with the newest interfaces.  You'll probably have to check out
the TinyOS baseline to get it fixed.

The CC1100Control errors are valid.  I've been developing on a CC2500, and
haven't had the chance to compile the CC1100 stuff on my machine.  I'll send
the CC1100 error messages you've found to Jared Hill (cc'd) who's also
working on the stack to see if he can solve it and check it back in.

So try getting the latest TinyOS baseline and we'll work on fixing those
CC1100 compile time errors.  Thanks,
-David




-Original Message-
From: Gustavo [mailto:[EMAIL PROTECTED] 
Sent: Monday, October 08, 2007 8:54 AM
To: [EMAIL PROTECTED]
Subject: Using blaze

Mr. Moss,

We have been attempting to use your blaze radio in our mote since it
provides all the code for the CC1100 radio. However, installing the
files in the tinyos-2.x-contrib/blaze/ to the tos folder in
opt/tinyos-2.x/tos results in the following error when we attempt to run
make: (even with make tmote1100):


mkdir -p build/utmost
compiling ContinuousTransmitC to a utmost binary
ncc -o build/utmost/main.exe -Os -O -mdisable-hwmul -Wall -Wshadow
-DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -mdisable-hwmul -target=utmost
-fnesc-cfile=build/utmost/app.c -board= -DIDENT_PROGRAM_NAME=
\ContinuousTrans\ -DIDENT_USER_ID=\gustavo\ -DIDENT_HOSTNAME=
\Gustavo\ -DIDENT_USER_HASH=0xba450eabL -DIDENT_UNIX_TIME=0x470a4d36L
-DIDENT_UID_HASH=0xd5cf4b3fL  ContinuousTransmitC.nc -lm 
In file included
from /opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageC.nc:27,
 from /opt/tinyos-2.x/tos/chips/blazeradio/BlazeC.nc:55,

from /opt/tinyos-2.x/tos/platforms/utmost/ActiveMessageC.nc:35,
 from ContinuousTransmitC.nc:11:
In component `BlazeActiveMessageP':
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:59:
conflicting types for `AMSend.getPayload'
/opt/tinyos-2.x/tos/interfaces/AMSend.nc:125: previous declaration of
`AMSend.getPayload'
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc: In
function `AMSend.getPayload':
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:60: too
many arguments to function `SubSend.getPayload'
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc: At top
level:
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:133:
conflicting types for `Packet.getPayload'
/opt/tinyos-2.x/tos/interfaces/Packet.nc:108: previous declaration of
`Packet.getPayload'
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:32:
`Snoop.payloadLength' not implemented
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:32:
`Snoop.getPayload' not implemented
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:32:
`Receive.payloadLength' not implemented
/opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageP.nc:32:
`Receive.getPayload' not implemented
In file included
from /opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectC.nc:36,

from /opt/tinyos-2.x/tos/chips/blazeradio/am/BlazeActiveMessageC.nc:41,
 from /opt/tinyos-2.x/tos/chips/blazeradio/BlazeC.nc:55,

from /opt/tinyos-2.x/tos/platforms/utmost/ActiveMessageC.nc:35,
 from ContinuousTransmitC.nc:11:
In component `RadioSelectP':
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc:116:
conflicting types for `Send.getPayload'
/opt/tinyos-2.x/tos/interfaces/Send.nc:114: previous declaration of
`Send.getPayload'
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc: In function
`Send.getPayload':
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc:117: too
many arguments to function
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc: At top
level:
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc:26:
`Receive.payloadLength' not implemented
/opt/tinyos-2.x/tos/chips/blazeradio/select/RadioSelectP.nc:26:
`Receive.getPayload' not implemented
In file included
from /opt/tinyos-2.x/tos/chips/blazeradio/link/PacketLinkC.nc:51,
 from /opt/tinyos-2.x/tos/chips/blazeradio/BlazeC.nc:68,

from /opt/tinyos-2.x/tos/platforms/utmost/ActiveMessageC.nc:35,
 from ContinuousTransmitC.nc:11:
In component `PacketLinkP':
/opt/tinyos-2.x/tos/chips/blazeradio/link/PacketLinkP.nc:166:
conflicting types for `Send.getPayload'
/opt/tinyos-2.x/tos/interfaces/Send.nc:114: previous declaration of
`Send.getPayload'
/opt/tinyos-2.x/tos/chips/blazeradio/link/PacketLinkP.nc: In function
`Send.getPayload':
/opt/tinyos-2.x/tos/chips/blazeradio/link/PacketLinkP.nc:167: too many
arguments to function `SubSend.getPayload'
In file included
from 

RE: [Tinyos-help] CC2420 Radio

2007-10-01 Thread David Moss
Rx is default for everything.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ricardo
Tiago
Sent: Sunday, September 30, 2007 6:45 PM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] CC2420 Radio

Hi,

When the cc2420 radio is turned on , in which state does stay? Idle, Rx or
Tx?

regards,
Ricardo
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] RSSI Measurement Information

2007-09-28 Thread David Moss
It's all done in hardware, so all the information related to RSSI sampling
can be found in the CC2420 datasheet.

http://www.stanford.edu/class/cs244e/papers/cc2420.pdf

-David


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tal Rusak
Sent: Thursday, September 27, 2007 11:15 PM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] RSSI Measurement Information

Hi,
 I need some information about how the RSSI is sampled in the CC2420
radio. In particular, does anyone have a diagram and/or description
of the filter used?

Thanks,
Tal

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


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


RE: [Tinyos-help] Does LowPowerListening implement McuSleepC?

2007-09-28 Thread David Moss
The microcontroller sleep period and the radio duty cycling are completely
separate.  The microcontroller sleep functionality is built into the TinyOS
operating system - when there are no tasks to execute in the scheduler, the
microcontroller goes to sleep automatically.

 

In order to use the radio low power listening functionality, the
microcontroller must wake up and interact with the radio.  This wakeup is
caused by the periodic timer built into the low power listening
functionality, defined by your local sleep interval.  If there is nothing
interesting on the channel for the radio to stay awake for, the radio goes
back to sleep.  The microcontroller, with nothing else to do, goes back to
sleep on its own until the next interrupt.  

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Gary Pan
Sent: Friday, September 28, 2007 11:23 AM
To: TinyOS
Subject: [Tinyos-help] Does LowPowerListening implement McuSleepC?

 

Hi all,

I am trying to test LowPowerListening to test the power consumption in
Micaz. As I known, LowPowerListening control the radio on and off
periodically. I wonder that if Lpl also controls MCU's sleeping mode as what
McuSleepC does. If I want to add McuSleepC module in order to make the
processor sleep, does it affect the function of Lpl? If the Rx receive radio
pkt, does the Rx trick the processor and wake it up?



  

  _  

Yahoo! oneSearch: Finally, mobile
http://us.rd.yahoo.com/evt=48252/*http:/mobile.yahoo.com/mobileweb/onesearc
h?refer=1ONXIC  search that gives answers, not web links. 

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

RE: [Tinyos-help] low power listening -- anomalous/random 100-200 ms delay/skew?

2007-09-27 Thread David Moss
Ben -

You're exactly right.  When energy is detected - as long as the radio thinks
it's an 802.15.4 carrier signal, the DefaultLplP module gets a signal to
wake up and listen for a few moments.  I have it set to 100 ms 'listen
period' right now just for reliability reasons - i.e. maybe we have lots of
transmitters in the area and the message we're hearing right now is to
someone else, but there might be another message on the channel destined for
the local node in a moment.

Because the one shot timer is restarted, the timer fires get shifted.  This
may not work so well in the future if we want to implement a synchronous
layer on top of the asynchronous layer.  Instead, we'd want the asynchronous
layer to use a periodic timer to keep the synchronous layer above happy.

-David






-Original Message-
From: Murray, Ben [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 27, 2007 7:05 AM
To: Murray, Ben; 'tinyos-help@Millennium.Berkeley.EDU'; 'David Moss'
Subject: RE: [Tinyos-help] low power listening -- anomalous/random 100-200
ms delay/skew?

I think I may have found the answer to my own question :-) but I have a new
question now, but I will put that in a new e-mail

... when LPL is doing its CCACheck routine and the energyindicator signals
its .detected() event an off timer is started as a one shot with a
lifetime of 100 ms (set in defaultLPL.h with a definition of
DELAY_AFTER_RECEIVE 100.  Assuming energy remained present in the Channel
during this time the off timer would be restarted.  Energy is detected but
no packet was received this would simply cause a delay in the LPL routine.

Regards
Ben



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf 
 Of Murray,
 Ben
 Sent: 27 September 2007 11:18
 To: 'tinyos-help@Millennium.Berkeley.EDU'; 'David Moss'
 Subject: [Tinyos-help] low power listening -- anomalous/random 100-200
 ms delay/skew?
 
 
 (TinyOS 2.0.2; Micaz; mib510; Cygwin)
 
 I have left a number of motes running in low power listening 
 mode and have
 observed that occasionally one or more of the motes' LPL-receive-check
 experiences a sudden delay/shift of approximately 100 ms and shortly
 thereafter a second sudden delay/shift of approximately 
 100-120 ms.  I am
 not running any transmitters although 2.4 GHz is quite a popular
 frequency... the first time I observed it two motes 
 experienced the delay at
 the same time after three minutes of running, the second time 
 I observed it
 a single Mote experienced the delay after approximately half 
 an hour, and
 this morning one of the three motes I had left running had 
 experienced this
 delay at some point overnight.  One of the three motes 
 experienced this
 delay in all three tests, one of the motes did not experience 
 the delay at
 all, and the third Mote experienced the delay once in the 
 first test but not
 again.  When two motes experienced the delay, they 
 experienced it at what
 appeared to be the same time and the delay was consistent 
 between them.
 
 Is there a built-in function within low power listening that 
 initiates a
 timeout/delay-of-start with regards to the sleep interval 
 timer that lasts
 approximately 100 ms, perhaps to cope with noisy channels or received
 packets/suspected received packets?  Signal detection as 
 opposed to a random
 software/hardware error is because I have observed (using an 
 oscilloscope)
 two motes undergoing the exact same delay at the exact same time.  The
 receive event is not triggered and therefore I assume that 
 this is some
 function to deal with a suspected packet when energy is detected.
 
 Would it be a trivial matter for me to find this function 
 such that I could
 add an event trigger so that I know every time that LPL 
 detects Channel
 energy but subsequently does not receive a packet (assuming 
 this is what is
 causing the delay).  Perhaps something like FalseReceive - 
 this might
 allow me to correct the timing within my programme whenever this delay
 occurs.
 
 Also, if I could be directed to the exact function that would 
 be very useful
 would as it might save me a lot of time trawling through code/editing
 something incorrectly ;-)
 
 Many thanks
 Ben
 
 **
 *
 Please consider the environment before printing this email.
 **
 *
 This email and any files transmitted with it are intended 
 solely for the use of
 the individual or entity to whom they are addressed and may 
 not be divulged to
 any third party without the express permission of the 
 originator.  Any views
 expressed in this message are those of the individual sender, 
 except where the
 sender specifically states them to be the views of Thales 
 Research  Technology
 (UK) Limited

RE: [Tinyos-help] low power listening -- anomalous/random 100-200 ms delay/skew?

2007-09-27 Thread David Moss
Hi Mischa -

Theoretically and to a degree, yes.  But there could still be some
reliability issues that you'll only be able to know about and make
adjustments to by actually testing the implementation in your actual
network.  The best thing to do is to try lowering the value and see what you
get - if performance doesn't suffer, then go with it

-David


-Original Message-
From: Mischa Weise [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 27, 2007 9:49 AM
To: David Moss
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] low power listening -- anomalous/random 100-200
ms delay/skew?

Hi David,

A follow-up question on this. If I assume that there are only broadcasts
in my network I could lower this savely to 10ms without interfering with
the receive event?

cheers,
Mischa

David Moss wrote:
 Ben -
 
 You're exactly right.  When energy is detected - as long as the radio
thinks
 it's an 802.15.4 carrier signal, the DefaultLplP module gets a signal to
 wake up and listen for a few moments.  I have it set to 100 ms 'listen
 period' right now just for reliability reasons - i.e. maybe we have lots
of
 transmitters in the area and the message we're hearing right now is to
 someone else, but there might be another message on the channel destined
for
 the local node in a moment.
 
 Because the one shot timer is restarted, the timer fires get shifted.
This
 may not work so well in the future if we want to implement a synchronous
 layer on top of the asynchronous layer.  Instead, we'd want the
asynchronous
 layer to use a periodic timer to keep the synchronous layer above happy.
 
 -David
 
 
 
 
 
 
 -Original Message-
 From: Murray, Ben [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, September 27, 2007 7:05 AM
 To: Murray, Ben; 'tinyos-help@Millennium.Berkeley.EDU'; 'David Moss'
 Subject: RE: [Tinyos-help] low power listening -- anomalous/random 100-200
 ms delay/skew?
 
 I think I may have found the answer to my own question :-) but I have a
new
 question now, but I will put that in a new e-mail
 
 ... when LPL is doing its CCACheck routine and the energyindicator signals
 its .detected() event an off timer is started as a one shot with a
 lifetime of 100 ms (set in defaultLPL.h with a definition of
 DELAY_AFTER_RECEIVE 100.  Assuming energy remained present in the Channel
 during this time the off timer would be restarted.  Energy is detected
but
 no packet was received this would simply cause a delay in the LPL routine.
 
 Regards
 Ben
 
 
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf 
 Of Murray,
 Ben
 Sent: 27 September 2007 11:18
 To: 'tinyos-help@Millennium.Berkeley.EDU'; 'David Moss'
 Subject: [Tinyos-help] low power listening -- anomalous/random 100-200
 ms delay/skew?


 (TinyOS 2.0.2; Micaz; mib510; Cygwin)

 I have left a number of motes running in low power listening 
 mode and have
 observed that occasionally one or more of the motes' LPL-receive-check
 experiences a sudden delay/shift of approximately 100 ms and shortly
 thereafter a second sudden delay/shift of approximately 
 100-120 ms.  I am
 not running any transmitters although 2.4 GHz is quite a popular
 frequency... the first time I observed it two motes 
 experienced the delay at
 the same time after three minutes of running, the second time 
 I observed it
 a single Mote experienced the delay after approximately half 
 an hour, and
 this morning one of the three motes I had left running had 
 experienced this
 delay at some point overnight.  One of the three motes 
 experienced this
 delay in all three tests, one of the motes did not experience 
 the delay at
 all, and the third Mote experienced the delay once in the 
 first test but not
 again.  When two motes experienced the delay, they 
 experienced it at what
 appeared to be the same time and the delay was consistent 
 between them.

 Is there a built-in function within low power listening that 
 initiates a
 timeout/delay-of-start with regards to the sleep interval 
 timer that lasts
 approximately 100 ms, perhaps to cope with noisy channels or received
 packets/suspected received packets?  Signal detection as 
 opposed to a random
 software/hardware error is because I have observed (using an 
 oscilloscope)
 two motes undergoing the exact same delay at the exact same time.  The
 receive event is not triggered and therefore I assume that 
 this is some
 function to deal with a suspected packet when energy is detected.

 Would it be a trivial matter for me to find this function 
 such that I could
 add an event trigger so that I know every time that LPL 
 detects Channel
 energy but subsequently does not receive a packet (assuming 
 this is what is
 causing the delay).  Perhaps something like FalseReceive - 
 this might
 allow me to correct the timing within my programme whenever this delay
 occurs.

 Also, if I could be directed to the exact function that would 
 be very useful
 would as it might save me a lot

RE: [Tinyos-help] low power listening -- anomalous/random 100-200 ms delay/skew?

2007-09-27 Thread David Moss
In order to detect packets, you first have to detect energy.  The energy
detect only happens once, so even if there is lots of energy to be detected
the 100 ms timer will only get triggered one time unless packets are
detected afterward.  If packets are detected, those packets must be destined
for your local node in order to keep the radio turned on.  The detection of
energy can take between 0.1-10 ms depending on the LPL implementation, while
I have the detection of packets set to 100 ms.  100 ms is probably a little
overkill for some applications, but works rather reliably.

Right now the CC2420 stack is not utilizing the byte detection.  The idea
there was first you would detect energy by performing the smallest radio
on-time check possible (I've gotten the actual check down to 0.9
microseconds using a continuous modulation technique which is not available
right now in the baseline).  If energy is detected, you could remain on long
enough to see if you're receiving bytes (i.e. the SFD line is high).  If
you're not receiving bytes then you could potentially go back to sleep - but
that idea didn't prove to work well in a crowded network with multiple
transmitters nearby.   Another example there is if you start receiving a
packet that is not destined for you, then the CC2420 will stop receiving
bytes (the SFD line goes low) and you could shut off the radio.  Again, that
doesn't take into account the case where there are two transmitters nearby
and only one of those transmitters is sending a packet to you while the
other is sending packets to someone else.  The packets are co-mingled on the
channel in such a way that it's best to leave the radio on to receive a few
packets to determine if there's something interesting on the channel.

The highest level of detection is a packet detection which is what we're
using now, where you actually receive a packet destined for your local node.
At that point, you could leave the radio on for however long you want to
potentially communicate at 100% throughput with whomever you're talking to.


Yes, it's possible to set up different on-time delays based on the different
types of detection levels, and I have yet to implement anything like that.
But there's nothing stopping you from experimenting with it!

Let me know if you have more questions,

-David







-Original Message-
From: Murray, Ben [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 27, 2007 10:34 AM
To: 'Mischa Weise'; David Moss
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: RE: [Tinyos-help] low power listening -- anomalous/random 100-200
ms delay/skew?

It may also be possible to specify different Timer settings for packets and
spurious energy rather than the current setup which signals the same event
and incurs the same 100 ms delay.  Whether or not this would be a wise idea
I don't know though! :-)


PowerCycleP uses:
interface ReceiveIndicator as EnergyIndicator;
interface ReceiveIndicator as ByteIndicator;
interface ReceiveIndicator as PacketIndicator;
And signals:
signal PowerCycle.detected();
If either
call EnergyIndicator.isReceiving()
or
call PacketIndicator.isReceiving()
returns TRUE


Potentially the two different types of energy detections could signal
different length delays?  I have had some vague success in signalling the
detection event inside my programme but will come back to that later once I
am sure what I'm doing is okay :-)

-Ben




 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf 
 Of Mischa
 Weise
 Sent: 27 September 2007 17:49
 To: David Moss
 Cc: tinyos-help@Millennium.Berkeley.EDU
 Subject: Re: [Tinyos-help] low power listening -- anomalous/random
 100-200 ms delay/skew?
 
 
 Hi David,
 
 A follow-up question on this. If I assume that there are only 
 broadcasts
 in my network I could lower this savely to 10ms without 
 interfering with
 the receive event?
 
 cheers,
 Mischa
 
 David Moss wrote:
  Ben -
  
  You're exactly right.  When energy is detected - as long as 
 the radio thinks
  it's an 802.15.4 carrier signal, the DefaultLplP module 
 gets a signal to
  wake up and listen for a few moments.  I have it set to 100 
 ms 'listen
  period' right now just for reliability reasons - i.e. maybe 
 we have lots of
  transmitters in the area and the message we're hearing 
 right now is to
  someone else, but there might be another message on the 
 channel destined for
  the local node in a moment.
  
  Because the one shot timer is restarted, the timer fires 
 get shifted.  This
  may not work so well in the future if we want to implement 
 a synchronous
  layer on top of the asynchronous layer.  Instead, we'd want 
 the asynchronous
  layer to use a periodic timer to keep the synchronous layer 
 above happy.
  
  -David
  
  
  
  
  
  
  -Original Message-
  From: Murray, Ben [mailto:[EMAIL PROTECTED] 
  Sent: Thursday, September 27, 2007 7:05 AM
  To: Murray, Ben; 'tinyos

RE: [Tinyos-help] CC2420 packet delivery

2007-09-25 Thread David Moss
Since the RX FIFO queue is something like 128 bytes, it would take a few
packets to make it overflow.  Page 33 of the CC2420 datasheet explains:

 

The RXFIFO can only contain a maximum

of 128 bytes at a given time. This may be

divided between multiple frames, as long

as the total number of bytes is 128 or less.

If an overflow occurs in the RXFIFO, this

is signalled to the microcontroller by

setting the FIFO pin low while the FIFOP

pin is high. Data already in the RXFIFO

will not be affected by the overflow, i.e.

frames already received may be read out.

 

A SFLUSHRX command strobe is required

after a RXFIFO overflow to enable

reception of new data. Note that the

SFLUSHRX command strobe should be

issued twice to ensure that the SFD pin

goes back to its idle state.

 

And that's what the driver does.

 

-David

 

 

  _  

From: roberto pagliari [mailto:[EMAIL PROTECTED] 
Sent: Monday, September 24, 2007 10:50 PM
To: David Moss
Cc: tinyos-help@millennium.berkeley.edu
Subject: Re: [Tinyos-help] CC2420 packet delivery

 

Hi David,
if a STXON command strobe is issued, during the receiption of a packet I'm
sure the radio will transmit it. If the received bytes stay into the RXFIFO
queue (is it true?) and sometime later the radio receives another packet,
that would overflow, since the expected number of bytes was the previous
one. What happens in that case? Does the radio flushes the RXFIFO queue? 

thanks

On 9/18/07, David Moss [EMAIL PROTECTED] wrote:

Never explicitly tried it before with the intention of noting the results,
but your node should transmit, leaving the RXFIFO turned to garbage and
filtered out naturally by the receive methods (i.e. checking for a proper
length byte and CRC).  I could be wrong, but note that having two
transmitters next to each other without using clear channel assessments
leaves them both transmitting and rarely receiving clean packets.

 

If the length byte is within bounds, then the radio stack can safely
download the packet and check the CRC byte regardless of what happened.  If
the length byte in the RX FIFO is not within bounds (smaller than expected,
or larger than the RX FIFO size) then the RX FIFO certainly needs to be
flushed.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of roberto
pagliari
Sent: Tuesday, September 18, 2007 4:43 PM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] CC2420 packet delivery

 

Hi All,
does anyone know what happen if, during the receiption of a packet, a STXON
(not STXONCCA) strobe command from the microcontroller is issued?
Does the radiochip turn the circuit to the transmitter? If so, should I
flush the RXFIFO queue? 


many thanks,

Roberto

 

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

RE: [Tinyos-devel] Re: [Tinyos-help] Question about printf

2007-09-22 Thread David Moss
Phil's case is important.  I've seen a lot of support in TinyOS for
split-phase debugging output.  But there's this whole other area where
single-phase debugging output is critical, i.e. tracing through code as it
executes or trying to get something to print out before the uC gets locked
up in a mysterious infinite loop (try to debug older version of the CC2420
stack for example).  I don't think it's a matter of using printf
incorrectly, it's a matter of having an incompatible printf/serial stack
implementation underneath for what you're trying to do.  

For some types of single-phase debugging that would support Phil's for()
loop, I've experimented with a basic single-phase serial stack located at
tinyos-2.x-contrib/rincon/tos/lib/directserial.  Unfortunately, if it's
compiled in alongside the baseline serial stack, they conflict and cause
some problems, but it would be nice to get them to coexist.  With a
single-phase serial stack, Printf could then support nearly all of its use
cases (except for timing critical issues I suppose) and possibly require
less memory since its buffer is flushed out completely by the time the call
to printf() returns. 

-David





-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Philip
Levis
Sent: Saturday, September 22, 2007 1:02 PM
To: Kevin Klues
Cc: [EMAIL PROTECTED]; TinyOS-Devel list; tos
Subject: [Tinyos-devel] Re: [Tinyos-help] Question about printf

On Sep 21, 2007, at 8:25 PM, Kevin Klues wrote:

 I don't seen anything in 'man 3 printf' that implies that it has to be
 a blocking operation.  In fact the manual shouldn't imply this.
 printf is part of the standard C library, not affiliated with any
 particular operating system.

Right -- the printf semantics have more to do with the associated  
file stream (printf is really just a call to fprintf) than with  
printf itself. In the case of printf, the file stream is stdout.


 To implement printf() functionality for any mcu that has a libc (such
 as msp430-libc or avr-libc) you just have to fill in the body of the
 'putchar' function declared in stdio.h.  This is exactly what the
 PrintfP component in tos/lib/printf does.  No magic. it just
 collects the bytes coming in via calls to putchar, packs them into
 TInyOS serial messages, and sends them out over the USART.

Right -- so look at how putchar is typically implemented. The example  
from avr-gcc's stdio.h goes like this:

 static int
 uart_putchar(char c, FILE *stream)
 {

   if (c == '\n')
 uart_putchar('\r', stream);
   loop_until_bit_is_set(UCSRA, UDRE);
   UDR = c;
   return 0;
 }

 int
 main(void)
 {
   init_uart();
   stdout = mystdout;
   printf(Hello, world!\n);

   return 0;
 }


 It should be left up to whatever operating system that implements it
 to define the semantics.

Great: I'd like to define a printf semantics that crashes the computer.

Look -- to reiterate my last mail, I agree that this function is  
useful, and it should be available. I'm just saying that, because it  
does differ significantly from what one might expect from printf,  
maybe it should be named differently. E.g.:

void test() {
   uint16_t i;
   for (i = 0; i  20480; i++) {
 printf(\n);
   }
}

If you can find a reasonable implementation of printf besides yours  
that does not print out 20480 newlines, then my concern is totally  
unfounded and wrong.

Phil
___
Tinyos-devel mailing list
[EMAIL PROTECTED]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel


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


RE: [Tinyos-devel] Re: [Tinyos-help] Question about printf

2007-09-22 Thread David Moss
CVS copy/pasting problems in my local drive.  I've committed it now, but it
may take awhile for sourceforge to post it.

In the meantime, there should be another copy of it inside of
tinyos-2.x-contrib/tunit/tos/lib/directserial

-David


-Original Message-
From: Kevin Klues [mailto:[EMAIL PROTECTED] 
Sent: Saturday, September 22, 2007 1:33 PM
To: David Moss
Subject: Re: [Tinyos-devel] Re: [Tinyos-help] Question about printf

The directserial directory isnt there.

Kevin

On 9/22/07, David Moss [EMAIL PROTECTED] wrote:
 Phil's case is important.  I've seen a lot of support in TinyOS for
 split-phase debugging output.  But there's this whole other area where
 single-phase debugging output is critical, i.e. tracing through code as it
 executes or trying to get something to print out before the uC gets locked
 up in a mysterious infinite loop (try to debug older version of the CC2420
 stack for example).  I don't think it's a matter of using printf
 incorrectly, it's a matter of having an incompatible printf/serial stack
 implementation underneath for what you're trying to do.

 For some types of single-phase debugging that would support Phil's for()
 loop, I've experimented with a basic single-phase serial stack located at
 tinyos-2.x-contrib/rincon/tos/lib/directserial.  Unfortunately, if it's
 compiled in alongside the baseline serial stack, they conflict and cause
 some problems, but it would be nice to get them to coexist.  With a
 single-phase serial stack, Printf could then support nearly all of its use
 cases (except for timing critical issues I suppose) and possibly require
 less memory since its buffer is flushed out completely by the time the
call
 to printf() returns.

 -David





 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Philip
 Levis
 Sent: Saturday, September 22, 2007 1:02 PM
 To: Kevin Klues
 Cc: [EMAIL PROTECTED]; TinyOS-Devel list; tos
 Subject: [Tinyos-devel] Re: [Tinyos-help] Question about printf

 On Sep 21, 2007, at 8:25 PM, Kevin Klues wrote:

  I don't seen anything in 'man 3 printf' that implies that it has to be
  a blocking operation.  In fact the manual shouldn't imply this.
  printf is part of the standard C library, not affiliated with any
  particular operating system.

 Right -- the printf semantics have more to do with the associated
 file stream (printf is really just a call to fprintf) than with
 printf itself. In the case of printf, the file stream is stdout.

 
  To implement printf() functionality for any mcu that has a libc (such
  as msp430-libc or avr-libc) you just have to fill in the body of the
  'putchar' function declared in stdio.h.  This is exactly what the
  PrintfP component in tos/lib/printf does.  No magic. it just
  collects the bytes coming in via calls to putchar, packs them into
  TInyOS serial messages, and sends them out over the USART.

 Right -- so look at how putchar is typically implemented. The example
 from avr-gcc's stdio.h goes like this:

  static int
  uart_putchar(char c, FILE *stream)
  {

if (c == '\n')
  uart_putchar('\r', stream);
loop_until_bit_is_set(UCSRA, UDRE);
UDR = c;
return 0;
  }

  int
  main(void)
  {
init_uart();
stdout = mystdout;
printf(Hello, world!\n);

return 0;
  }


  It should be left up to whatever operating system that implements it
  to define the semantics.

 Great: I'd like to define a printf semantics that crashes the computer.

 Look -- to reiterate my last mail, I agree that this function is
 useful, and it should be available. I'm just saying that, because it
 does differ significantly from what one might expect from printf,
 maybe it should be named differently. E.g.:

 void test() {
uint16_t i;
for (i = 0; i  20480; i++) {
  printf(\n);
}
 }

 If you can find a reasonable implementation of printf besides yours
 that does not print out 20480 newlines, then my concern is totally
 unfounded and wrong.

 Phil
 ___
 Tinyos-devel mailing list
 [EMAIL PROTECTED]
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel





-- 
~Kevin


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


RE: [Tinyos-help] Question MSP430x1xx and MSP430x2xx

2007-09-19 Thread David Moss
Typically you don't need more flash than what is specified by the ROM size
at compile time.  But you should be concerned about RAM.  The RAM size
specified at compile time is only the heap.  The stack space is not taken
into account - so your platform should have sufficiently more RAM than what
your compiled application tells you it uses.  Although there are stack space
profilers out there that can help in this area, I generally leave at least
1kB RAM available above what the compile time RAM size says, just to be
safe.  

-David

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of John
Griessen
Sent: Wednesday, September 19, 2007 12:32 PM
To: tinyos-help
Subject: Re: [Tinyos-help] Question MSP430x1xx and MSP430x2xx

Sivan Toledo wrote:
 TI just announced $50 boards that have an MSP430F2274 and a
 2.4GHztransceiver.

The MSP430F2274 has 32K flash where the MSP430F1611 of Tmote Sky has 48K.
How will 32K flash affect the ability to port tinyOS to the MSP430F2274?

How about the CC2510 and CC2511 with a radio and 8051 micro with 32K 
flash?  Is there any tinyos porting effort going for that recently?

How much extra flash is needed beyond the reported compiled size of
a tinyOS program?


As in:

 compiled ReadMoistureSensorsC to build/ecosens1/main.exe
14150 bytes in ROM
  360 bytes in RAM


John Griessen
-- 
Ecosensory
tinyOS devel on:  ubuntu Linux;   tinyOS v2.0.2;   telosb ecosens1
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


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


RE: [Tinyos-help] CC2420 packet delivery

2007-09-18 Thread David Moss
Never explicitly tried it before with the intention of noting the results,
but your node should transmit, leaving the RXFIFO turned to garbage and
filtered out naturally by the receive methods (i.e. checking for a proper
length byte and CRC).  I could be wrong, but note that having two
transmitters next to each other without using clear channel assessments
leaves them both transmitting and rarely receiving clean packets.

 

If the length byte is within bounds, then the radio stack can safely
download the packet and check the CRC byte regardless of what happened.  If
the length byte in the RX FIFO is not within bounds (smaller than expected,
or larger than the RX FIFO size) then the RX FIFO certainly needs to be
flushed.

 

-David

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of roberto
pagliari
Sent: Tuesday, September 18, 2007 4:43 PM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] CC2420 packet delivery

 

Hi All,
does anyone know what happen if, during the receiption of a packet, a STXON
(not STXONCCA) strobe command from the microcontroller is issued?
Does the radiochip turn the circuit to the transmitter? If so, should I
flush the RXFIFO queue? 


many thanks,

Roberto

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

RE: [Tinyos-help] external antenna

2007-09-13 Thread David Moss
You guys are moving the C73 capacitor over to connect the external antenna,
right?


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael
Schippling
Sent: Thursday, September 13, 2007 10:25 AM
To: André Miguel de Almeida Marrão Rodrigues
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] external antenna

Are we sure that the antennas are for the right wavelength?
By linksys I guess you mean a dongle from an 802.11b,g
router? Do they have the same connector as your Tmote?
And are the connectors seated well?

Also, you're sure you disabled the internal antenna?
I think there's a capacitor that needs to be removed
on the standard Tmotes.

...I guess I should try this sometime...

MS


André Miguel de Almeida Marrão Rodrigues wrote:
 Hello
 
 I have tried these kind of antennas and it also did not work
 in an indoor scenario with 2 walls.
 
 For 200mts in your scenario perhaps you should use TMoteMiniPro or other
 nodes with a power amplifier.
 
 André
 
 - Original Message - From: subhash nemani 
 [EMAIL PROTECTED]
 To: tinyos-help@Millennium.Berkeley.EDU
 Sent: Thursday, September 13, 2007 11:41 AM
 Subject: [Tinyos-help] external antenna
 
 
 we have tmotes without internal antenna and provision for external i.e
 SMA connector .i have connected linksys 7dBi antennas
 but it is not covering even a distance of 20 mts
 what might be the problem???
 please help me in this regard
 i have tired the power settings using commands at the cygwin prompt
 also but no result
 atleast i need to transmit the signal for 200mts
 plzzz help me 
 thank u in advance
 ___
 Tinyos-help mailing list
 Tinyos-help@Millennium.Berkeley.EDU
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help 
 
 ___
 Tinyos-help mailing list
 Tinyos-help@Millennium.Berkeley.EDU
 https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

-- 
Platform: WinXP/Cygwin
TinyOS version: 1.x, Boomerang
Programmer: MIB510
Device(s): Mica2, MicaZ, Tmote
Sensor board: homebrew

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



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


RE: [Tinyos-help] forcing a node in LPL mode to stop listening if a transmission is continuous

2007-09-06 Thread David Moss
What version of TinyOS are you using? If you're using the NoAck LPL layer
from 2.0.1, that would exhibit the behavior you describe, and I'd recommend
using something different.

 

For all other scenarios, the motes should go back to sleep if a transmitter
continuously sends the same message at the LPL layer.  There are two cases
(that I can think of) where a transmitter will keep transmitting a message
to a low power listener after the receiver already got the message:  1) the
message is sent to the broadcast address, or 2) the Rx mote didn't properly
send back an acknowledgement for a unicast message.  If the transmitter is
sending unique messages over and over again (unique meaning each message has
the same source and DSN byte), then the receiver will definitely stay awake
to receive all of them.

 

If you have a transmitter that is calling AMSend.send() in a loop, then each
of those messages is not unique.  The receiver, upon detecting one of the
transmissions, will stay awake to receive all further messages at a high
rate of throughput. 

 

-David

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Thursday, September 06, 2007 7:04 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] forcing a node in LPL mode to stop listening if a
transmission is continuous

 

Again, perhaps a slightly strange scenario, but I was wondering if there was
a standard way to stop a node using the low power listening technique from
receiving successive messages in the presence of a continuous transmitter?

 

If, for example, a transmitter is set up to continuously transmit message
after message the Mote using low power listening reception appears to remain
on once it has detected the presence of a transmission the first time it
performs an LPL receive? Is there any way to make it go back to sleep after
the first (or nth) message received such that it is not trapped into
remaining on and limits itself to receiving only one (or possibly only n)
message(s) per LPL wake period?

 

Is this sort of functionality existent in tinyOS at all?

 

Many thanks
Ben


***

Please consider the environment before printing this email.


***

This email and any files transmitted with it are intended solely for the use
of

the individual or entity to whom they are addressed and may not be divulged
to

any third party without the express permission of the originator. Any views

expressed in this message are those of the individual sender, except where
the

sender specifically states them to be the views of Thales Research 
Technology

(UK) Limited.


***

 

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

RE: [Tinyos-help] low power listening -- controlling when it wakes and confirming s leep period?

2007-09-06 Thread David Moss
The correct answer to your first question is A, because a one-shot timer is
used in the LPL layer.  The use of a one-shot resets the timer after every
wake-up, which allows you to change the period arbitrarily after the next
timer fire. 

 

Your second question concerns a synchronous low power listening
implementation on top of an asynchronous implementation.  And, rather than
adjust when the receiver wakes up to expect a transmission, a possibly
better method is to adjust when the transmitter begins transmitting its
message to align with a specific receiver.  By keeping the receive checks
asynchronous, receivers will wake up at different times within the local
geographical network and will be able to receive messages from transmitters
targeting those individual receivers.  This effectively shares the channel
through more of a time division (TDMA).  Your transmitters can also form a
table of when its neighbors are awake based on when they receive
acknowledgements from those receivers.

 

Although a layer like this is not built into the radio stack now, it's just
waiting for an implementation.  Look up WiseMAC.

 

-David

 

 

 

 

 

  _  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Thursday, September 06, 2007 3:43 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] low power listening -- controlling when it wakes and
confirming s leep period?

 

I am using LowPowerListening with a MicaZ mote and am curious about a few
more specifics. I am using the setLocalSleepInterval(X ms) command. 

 

My first question concerns the actual sleep period.  Given the above
command, will the mote:

a) perform its low power listening period (taking approximately 5 ms) and
having completed that go to sleep for X ms, for a total period of (X + 5)
ms?

/or/

b) would it wakeup every X ms, with the low power listening period basically
taking up the first 5 ms of each X ms period?

 

My second question concerns the timing of the wake period, and whether when
this occurs is adjustable/controllable?  For instance, if I have set my
sleep interval to 5000 ms is there a way I can control when the wake period
will occur.  For the purpose of this example let us assume that my mote
knows that a signal will be transmitted once every 5000 ms, and that it
knows (magically) how many milliseconds its current waketime is shifted by
with respect to this transmitted signal.

 

E.g. (view with a mono-spaced font!)

Tx:__|_|_|_|...

Rx:__|___N_X___A_|_|...

 

... where N is the point where the receiver magically knows that it has
missed the transmission and by how many milliseconds, so instead of
activating its lpl receive period at X, it adjusts the low power listening
period such that the new space lpl receive period is at A and subsequent
receive period are now synchronised with the transmitter.

 

 

 

Ignoring whether or not this is a good idea, is it possible to do something
like this?  Perhaps by altering the localsleepinterval value -- would this
initiate a new listening period from the point at which it was called in the
code?  The other rough way to force this to happen I suppose might be to
stop the radio altogether, and start it again with low power listening
enabled -- is the wake period of low power listening active at the start
immediately when setlocalsleepinterval is called / startDone is completed,
or at the end, or somewhere in the middle? Apologies if this has been asked
before!

 

Thanks in advance
Ben


***

Please consider the environment before printing this email.


***

This email and any files transmitted with it are intended solely for the use
of

the individual or entity to whom they are addressed and may not be divulged
to

any third party without the express permission of the originator. Any views

expressed in this message are those of the individual sender, except where
the

sender specifically states them to be the views of Thales Research 
Technology

(UK) Limited.


***

 

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

RE: [Tinyos-help] forcing a node in LPL mode to stop listening if a transmission is continuous

2007-09-06 Thread David Moss
If you're sending message after message at the application layer, then you
receiver mote always has a job to do:  get the latest message.  As you've
pointed out, it will remain on for a short period of time to see if there
are more messages to receive.

 

Low power listening normally implies low throughput, because your receiver
is spending most of its time sleeping.  To get the receiver to go to sleep
automatically, you'll need to first setup the transmitter to transmit its
message using low power listening through call
LowPowerListening.setRxSleepInterval(myMsg, interval_in_ms);  Then, when
you get a sendDone, wait for awhile before sending the next message.  If you
try to send another message immediately, the receiver will indefinitely stay
on.

 

You could just tell the receiver to shut off manually if you want, that will
turn it off but you won't be enjoying any benefits of the low power
listening implementation

 

-David

 

 

 

 

  _  

From: Murray, Ben [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 06, 2007 10:35 AM
To: 'David Moss'; Murray, Ben; tinyos-help@Millennium.Berkeley.EDU
Subject: RE: [Tinyos-help] forcing a node in LPL mode to stop listening if a
transmission is continuous

 

It should be TinyOS 2.0.2 assuming I did the upgrade from 2.0.1 correctly

make command structure
 env CFLAGS=-DLOW_POWER_LISTENING make micaz install mib510,/dev/ttyS0

 

In the header file:
#define NOACK_LOW_POWER_LISTENING

 

The transmitter was set up so as to increment a counter and send that to
counter value in successive messages (I am basically using a modified
version of BlinkToRadio).  I am partly through reading a paper linked to
from tutorial number 16 which infers that in LPL mode if the receiver detect
a packet it will receive at packet and then remain listening for long enough
to catch another packet which I guess is what is happening here?

 

I guess what I wanted to know was if I had a similar situation with a
transmitter continuously sending message after message (even if this was
only for a limited time) whether there was some way that I could tell my LPL
receiver to go back to sleep rather than to continue listening to further
successive packets.  Would it be feasible perhaps to actually shut the radio
off (AMControl.stop) or would that interfere with the LPL?  Or perhaps there
is a way to send a call directly into the LPL component to stop it
attempting to receive a further following packet?  Or would I need to
customise the LPL component to do this?

 

What I was trying to do was to have one Mote continuously transmitting, and
a second Mote turning on occasionally in order to listen to the message the
first Mote was transmitting at that point in time, but then to stop
listening again.


Cheers
Ben

 

-Original Message-
From: David Moss [mailto:[EMAIL PROTECTED]
Sent: 06 September 2007 17:55
To: 'Murray, Ben'; tinyos-help@Millennium.Berkeley.EDU
Subject: RE: [Tinyos-help] forcing a node in LPL mode to stop listening if a
transmission is continuous

What version of TinyOS are you using? If you're using the NoAck LPL layer
from 2.0.1, that would exhibit the behavior you describe, and I'd recommend
using something different.

 

For all other scenarios, the motes should go back to sleep if a transmitter
continuously sends the same message at the LPL layer.  There are two cases
(that I can think of) where a transmitter will keep transmitting a message
to a low power listener after the receiver already got the message:  1) the
message is sent to the broadcast address, or 2) the Rx mote didn't properly
send back an acknowledgement for a unicast message.  If the transmitter is
sending unique messages over and over again (unique meaning each message has
the same source and DSN byte), then the receiver will definitely stay awake
to receive all of them.

 

If you have a transmitter that is calling AMSend.send() in a loop, then each
of those messages is not unique.  The receiver, upon detecting one of the
transmissions, will stay awake to receive all further messages at a high
rate of throughput. 

 

-David

 

 

 


  _  


From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Thursday, September 06, 2007 7:04 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] forcing a node in LPL mode to stop listening if a
transmission is continuous

 

Again, perhaps a slightly strange scenario, but I was wondering if there was
a standard way to stop a node using the low power listening technique from
receiving successive messages in the presence of a continuous transmitter?

 

If, for example, a transmitter is set up to continuously transmit message
after message the Mote using low power listening reception appears to remain
on once it has detected the presence of a transmission the first time it
performs an LPL receive? Is there any way to make it go back to sleep after
the first (or nth) message received such that it is not trapped

[Tinyos-help] RE: regarding TestNetwork application

2007-09-05 Thread David Moss
Hi Arpan -

 

I'm not sure what the problem could be off hand, as I'm not familiar with
the test network application.  I'm forwarding your request to the
tinyos-help mailing list to see if anyone else can help,

 

-David

 

 

 

  _  

From: Arpan Solanki [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, September 04, 2007 8:42 PM
To: [EMAIL PROTECTED]
Subject: regarding TestNetwork application

 

Respected Sir,

 

I have loaded mica2 motes with test network application.

I am using listen tool to listen to serial port.

 

I should be receving 32 bytes on the pc using the Listen tool.

 

But i recieve only 23 bytes or 17 bytes at show below.

 

(23 bytes) 00 FF FF 00 02 0F 22 EE 00 01 00 00 00 02 06 EE 00 02 00 21 00 37
00 

(17 bytes) 00 FF FF 00 00 09 00 16 21 00 06 00 02 00 00 00 37

 

 

What is the problem, why am i not receiving 32 bytes on pc.

I am testing this application with 1 basestation and 3 mica2 motes.

I have not modified TestNetwork application at all.

 

So i need your help regarding this.

Why am i not receving 32 bytes on the pc Listen tool.

 

Regards,

Arpan. Solanki

Graduate Student.

Lamar University, 

Beaumont,

Texas.

 

 

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

[Tinyos-help] RE: CC2420 lpl

2007-09-04 Thread David Moss
Hi Tony, 

There is a reason behind this, but you can adjust it to meet your
application's needs.  

The radio shares the SPI bus with the flash, so applications that access
flash alongside radio will contend for the SPI bus.  In earlier versions,
the Tx node would release the SPI bus between the transmission and listening
for an ack, which would allow the flash to acquire the SPI bus in between.
This meant the Tx node wouldn't have access to the SPI bus to hear the ack.

Because either the transmitter *or* the receiver could have flash accessing
the SPI bus causing the acknowledgement to be delayed, the solution came in
two parts: 1) don't let the transmitter release the SPI bus when it's
waiting for an acknowledgement, and 2) extend the ack wait period to handle
the case where the receiver can't acquire the SPI bus in time.

If your application does not use the SPI bus (or any other peripheral on
SPI0) then you can safely lower the CC2420_ACK_WAIT_DELAY value and maintain
the same acknowledgement reception reliability.

-David




-Original Message-
From: Tony O'Donovan [mailto:[EMAIL PROTECTED] 
Sent: Monday, September 03, 2007 4:07 AM
To: David Moss
Subject: Re: CC2420 lpl

Hi David,

Sorry for annoying you with more questions.

In the tinyos 2.02 version of the cc2420 libs you've changed 
CC2420_ACK_WAIT_DELAY from 128 jiffies to 256 jiffies, nearly halving 
the possible send rate when using acks. I was wondering what the reason 
behind this is.

Thanks
Tony 



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


RE: [Tinyos-help] acknowledgements in Tinyos2.0.2 usingBaseStationCC2420, not supported?

2007-08-24 Thread David Moss
Tiago -

This flag shouldn't be application dependent.  When you set the flag at
compile time, or adjust the interface and call CC2420Config.sync() at
runtime, the address recognition settings should change.  With address
recognition off, your mote should be receiving packets that are destined for
other motes.  If this is not the case, let me know and we'll need test it
out further.

-David


-Original Message-
From: Tiago Camilo [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 24, 2007 4:01 AM
To: David Moss
Cc: tinyos-help@Millennium.Berkeley.EDU
Subject: Re: [Tinyos-help] acknowledgements in Tinyos2.0.2
usingBaseStationCC2420, not supported?

David,

Thanks for your time!!
You were right I was using an old version of CC2420ControlP, since I was 
compiling using the BaseStationCC2420 that incorporates the 
CC2420ControlP old version.
I just simply used the new BaseStation and the ack started to appear... 
so once again thanks!

I notest the flag -DCC2420_NO_ADDRESS_RECOGNITION, on the BaseStation 
Makefile, does this flag only work on the BaseStation code or can I use 
on different application using the CC2420ActiveMessageC component? 
Because I tried with no success. I also tried using the 
CC2420Config.setAddressRecognition(bool on) through CC2420ControlC, as u 
suggested in a previous mail.

Thanks in advance,
Tiago

David Moss wrote:
 Tiago -

 BaseStationCC2420 was removed in 2.0.2 because it is no longer necessary.
 It was originally there because the CC2420ControlP module needed some
 special modifications. Now, because those modifications are now controlled
 by software and/or preprocessor variables in the 2.0.2 CC2420 stack,
 BaseStationCC2420 is deprecated.

 It looks to me like some files in your CC2420 stack are not up to date
with
 version 2.0.2.  Specifically, the CC2420ControlP you're using is old
enough
 not to incorporate the newest interfaces defined by CC2420Config - that's
 where the errors are coming from.  If you're 100% sure that your
 tos/chips/cc2420 stack is up to date, can you be sure that CC2420ControlP
is
 not being pulled from some other location?  First verify your
 tos/chips/cc2420/control/CC2420ControlP provides the interfaces that
 CC2420Config is complaining about, and if it does then try adding the
 following line to your tos/chips/cc2420/control/CC2420ControlP module:

 #warning Using the newest CC2420ControlP

 When you compile, if you see that line printed to the command line at
 compile time, you can be sure of which CC2420ControlP file nesC is trying
to
 use.  Attached is the CC2420ControlP you should be using.  You can even
try
 putting that directly in your apps/BaseStation directory to force nesC to
 use it instead of some other, older CC2420ControlP.

 -David



 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Tiago
 Camilo
 Sent: Wednesday, August 22, 2007 7:55 AM
 To: tinyos-help@Millennium.Berkeley.EDU
 Cc: Philip Levis
 Subject: [Tinyos-help] acknowledgements in Tinyos2.0.2
 usingBaseStationCC2420, not supported?

 Hi all,

 I am trying to implement acknowledgementsin my telosb motes, using the 
 tinyos2.0.2.
  I am using the component CC2420ActiveMessageC with the interface 
 PacketAcknowledgements as suggested in the TestAcks application of 
 folder cc2420. However i can make this work using the BaseStationCC2420 
 application ( tinyos2.0.1). The source does not receive any 
 acknowledgments from the BaseStation. I found out that in the makefile 
 there is the declaration: CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS, which 
 explains the lack of ack. However when i try to compile 
 BaseStationCC2420 without this option i have this error:
 
 compiling BaseStationC to a telosb binary
 ncc -o build/telosb/main.exe -Os -O -mdisable-hwmul -Wall -Wshadow 
 -DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=telosb 
 -fnesc-cfile=build/telosb/app.c -board= -D'TOSH_DATA_LENGTH=102' 
 -DIDENT_PROGRAM_NAME=\BaseStationC\ -DIDENT_USER_ID=\tandre\ 
 -DIDENT_HOSTNAME=\homenux\ -DIDENT_USER_HASH=0xb4d39b1cL 
 -DIDENT_UNIX_TIME=0x46cc4aafL -DIDENT_UID_HASH=0xeb773d58L  
 BaseStationC.nc -lm
 In file included from 
 /opt/tinyos-2.x/tos/chips/cc2420/control/CC2420ControlC.nc:53,
  from 
 /opt/tinyos-2.x/tos/chips/cc2420/csma/CC2420CsmaC.nc:61,
  from /opt/tinyos- 
 2.x/tos/chips/cc2420/CC2420ActiveMessageC.nc:58,
  from 
 /opt/tinyos-2.x/tos/platforms/telosa/ActiveMessageC.nc:61,
  from BaseStationC.nc:71:
 In component `CC2420ControlP':
 CC2420ControlP.nc :236: `CC2420Config.getShortAddr': async mismatch with 
 declaration
 /opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:64: previous 
 declaration of `CC2420Config.getShortAddr'
 CC2420ControlP.nc:244: `CC2420Config.getPanAddr': async mismatch with 
 declaration
 /opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:70: previous 
 declaration of `CC2420Config.getPanAddr'
 CC2420ControlP.nc:76

RE: [Tinyos-help] acknowledgements in Tinyos2.0.2 usingBaseStationCC2420, not supported?

2007-08-23 Thread David Moss
Tiago -

BaseStationCC2420 was removed in 2.0.2 because it is no longer necessary.
It was originally there because the CC2420ControlP module needed some
special modifications. Now, because those modifications are now controlled
by software and/or preprocessor variables in the 2.0.2 CC2420 stack,
BaseStationCC2420 is deprecated.

It looks to me like some files in your CC2420 stack are not up to date with
version 2.0.2.  Specifically, the CC2420ControlP you're using is old enough
not to incorporate the newest interfaces defined by CC2420Config - that's
where the errors are coming from.  If you're 100% sure that your
tos/chips/cc2420 stack is up to date, can you be sure that CC2420ControlP is
not being pulled from some other location?  First verify your
tos/chips/cc2420/control/CC2420ControlP provides the interfaces that
CC2420Config is complaining about, and if it does then try adding the
following line to your tos/chips/cc2420/control/CC2420ControlP module:

#warning Using the newest CC2420ControlP

When you compile, if you see that line printed to the command line at
compile time, you can be sure of which CC2420ControlP file nesC is trying to
use.  Attached is the CC2420ControlP you should be using.  You can even try
putting that directly in your apps/BaseStation directory to force nesC to
use it instead of some other, older CC2420ControlP.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tiago
Camilo
Sent: Wednesday, August 22, 2007 7:55 AM
To: tinyos-help@Millennium.Berkeley.EDU
Cc: Philip Levis
Subject: [Tinyos-help] acknowledgements in Tinyos2.0.2
usingBaseStationCC2420, not supported?

Hi all,

I am trying to implement acknowledgementsin my telosb motes, using the 
tinyos2.0.2.
 I am using the component CC2420ActiveMessageC with the interface 
PacketAcknowledgements as suggested in the TestAcks application of 
folder cc2420. However i can make this work using the BaseStationCC2420 
application ( tinyos2.0.1). The source does not receive any 
acknowledgments from the BaseStation. I found out that in the makefile 
there is the declaration: CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS, which 
explains the lack of ack. However when i try to compile 
BaseStationCC2420 without this option i have this error:

compiling BaseStationC to a telosb binary
ncc -o build/telosb/main.exe -Os -O -mdisable-hwmul -Wall -Wshadow 
-DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=telosb 
-fnesc-cfile=build/telosb/app.c -board= -D'TOSH_DATA_LENGTH=102' 
-DIDENT_PROGRAM_NAME=\BaseStationC\ -DIDENT_USER_ID=\tandre\ 
-DIDENT_HOSTNAME=\homenux\ -DIDENT_USER_HASH=0xb4d39b1cL 
-DIDENT_UNIX_TIME=0x46cc4aafL -DIDENT_UID_HASH=0xeb773d58L  
BaseStationC.nc -lm
In file included from 
/opt/tinyos-2.x/tos/chips/cc2420/control/CC2420ControlC.nc:53,
 from 
/opt/tinyos-2.x/tos/chips/cc2420/csma/CC2420CsmaC.nc:61,
 from /opt/tinyos- 
2.x/tos/chips/cc2420/CC2420ActiveMessageC.nc:58,
 from 
/opt/tinyos-2.x/tos/platforms/telosa/ActiveMessageC.nc:61,
 from BaseStationC.nc:71:
In component `CC2420ControlP':
CC2420ControlP.nc :236: `CC2420Config.getShortAddr': async mismatch with 
declaration
/opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:64: previous 
declaration of `CC2420Config.getShortAddr'
CC2420ControlP.nc:244: `CC2420Config.getPanAddr': async mismatch with 
declaration
/opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:70: previous 
declaration of `CC2420Config.getPanAddr'
CC2420ControlP.nc:76: `CC2420Config.setAutoAck' not implemented
CC2420ControlP.nc:76: `CC2420Config.isAddressRecognitionEnabled' not 
implemented
CC2420ControlP.nc:76: `CC2420Config.setAddressRecognition' not implemented
CC2420ControlP.nc:76: `CC2420Config.isAutoAckEnabled' not implemented
CC2420ControlP.nc:76: `CC2420Config.isHwAutoAckDefault' not implemented
In component `CC2420ControlC':
/opt/tinyos-2.x/tos/chips/cc2420/control/CC2420ControlC.nc:98: cannot 
find `ActiveMessageAddress'
make: *** [exe0] Error 1

I know that the CC2420 stack was changed in this last version. Are we 
still waiting for a updated BaseStationCC2420 (since in 2.0.2 cvs it 
seems to be deleted), or am I missing something?

Thanks in advance,
Tiago Camilo
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


CC2420ControlP.nc
Description: Binary data
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

RE: [Tinyos-help] Low Power Listening not working with Dissemination???

2007-08-23 Thread David Moss
LPL has not been formally integrated into collection or dissemination.  Your
nodes' radios are off most of the time - in your case, they're asleep for
about a full second before waking up momentarily to see if something else is
talking.  This naturally causes significant delays in getting a message to
successfully traverse an entire network using dissemination.

A collection network sends out beacons periodically that wake up other
nodes.  Those nodes' radios may already be awake when your own message is
transmitted next.  This could explain a decrease in latency for a collection
network vs. dissemination.

Formally combining LPL + Collection / Dissemination is one of the next
phases currently being researched and developed for TinyOS.  If you make any
headway, I think the majority of the community would be interested in
hearing about your experiences.

-David

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Christian
Hermann
Sent: Thursday, August 23, 2007 10:47 AM
Cc: TinyOS
Subject: [Tinyos-help] Low Power Listening not working with Dissemination???

Hallo,
I'm using dissemination to send commands to the nodes
and LQI collection to collect the data. All works fine without LPL
(beside the fact that dissemination is a lot slower than collection
with increasing node depth). But if I set LPL duty cycle to 1000
for example, commands need very long (several seconds) to reach its
destination or even get lost completely quite often. Collection becomes
a little slower, but still delivers data reliably with around 100ms
total delivery time at node depth 2 or 3.
(PS: I also activated PACKET_LINK layer)

Does anyone know about issues with dissemination vs. LPL?

Thanks
Christian

Gary Pan schrieb:
 Hi all,
 
 Does anyone successfully use TinyOS plugin for Eclipse under linux
machine? Every time I try to create an application, it could not get
through. Is TinyOS plugin for Eclipse supported on Linux system?
 
 - Gary
 

 -
 Shape Yahoo! in your own image.  Join our Network Research Panel today!
 
 
 
 
 ___
 Tinyos-help mailing list
 Tinyos-help@Millennium.Berkeley.EDU
 https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

-- 

Christian Hermann

Am Weinberg 9
08529 Plauen
Fax +49 3741 470159
Tel +49 173 4020035

[EMAIL PROTECTED]
http://www.christian-hermann.de
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


RE: [Tinyos-help] low power listening - actual listening time?

2007-08-22 Thread David Moss
Although I don't have much advice on clock drift, the CC2420 low power
listening transmitter (micaz / tmote) should transmit a little longer than
the receive check period, ensuring overlap.

In the case of the CC2420, the 5 ms is approximately how long the radio is
in receive mode.  The radio actually kicks on for a little longer than that
because the crystal oscillator powers up - this is not included in the 5 ms
measurement.  5 ms is much less than the amount of time it takes to receive
a packet (especially with CSMA) because it's only detecting channel energy.
Once it sees energy on the channel, it stays awake longer to receive the
packet.  The CC1000 radio (mica2) previously did a preamble byte check,
which is much more complex than the newer implementations (BMAC) that sense
channel energy.  In the case of the CC1000 radio, the receive check is much
less than 5 ms.

-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Murray,
Ben
Sent: Wednesday, August 22, 2007 2:28 AM
To: tinyos-help@Millennium.Berkeley.EDU
Subject: [Tinyos-help] low power listening - actual listening time?

When using low power listening, as discussed in the duty cycle help thread,
I understand that the ON time is approx 5 ms. does anyone know approximately
how long the radio is actually receiving during this period?  I assume that
some of it is due to start up time and that the receiver must be enabled for
a certain length of time in order to detect a signal.  The main reason I ask
is because I am trying to work out just how much of a problem clock drift
might be.  I have read in a paper that the clock drift of a mica2 is approx
40 µs per second which amounts to 2.4 ms per minute.

Is there a commonly used rule of thumb perhaps for estimating what the extra
amount of time a transmitter might have to be active prior to another Motes
estimated low power listening wakeup time.  For example, if receive Mote is
known to be on a one minute sleep period and the transmit node knows when
this receive Mote was last awake, is it normal to begin transmission about
2.4 ms before you think receive Mote might wake up?


***
Please consider the environment before printing this email.

***
This email and any files transmitted with it are intended solely for the use
of
the individual or entity to whom they are addressed and may not be divulged
to
any third party without the express permission of the originator.  Any views
expressed in this message are those of the individual sender, except where
the
sender specifically states them to be the views of Thales Research 
Technology
(UK) Limited.

***


___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help



___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


RE: [Tinyos-help] acknowledgements in Tinyos2.0.2 usingBaseStationCC2420, not supported?

2007-08-22 Thread David Moss
I'd like to take a look at this, but will be unavailable to do so today.
Tomorrow I'll probably have time to investigate and get back with you.  

Thanks for the report
-David



-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tiago
Camilo
Sent: Wednesday, August 22, 2007 7:55 AM
To: tinyos-help@Millennium.Berkeley.EDU
Cc: Philip Levis
Subject: [Tinyos-help] acknowledgements in Tinyos2.0.2
usingBaseStationCC2420, not supported?

Hi all,

I am trying to implement acknowledgementsin my telosb motes, using the 
tinyos2.0.2.
 I am using the component CC2420ActiveMessageC with the interface 
PacketAcknowledgements as suggested in the TestAcks application of 
folder cc2420. However i can make this work using the BaseStationCC2420 
application ( tinyos2.0.1). The source does not receive any 
acknowledgments from the BaseStation. I found out that in the makefile 
there is the declaration: CFLAGS += -DCC2420_NO_ACKNOWLEDGEMENTS, which 
explains the lack of ack. However when i try to compile 
BaseStationCC2420 without this option i have this error:

compiling BaseStationC to a telosb binary
ncc -o build/telosb/main.exe -Os -O -mdisable-hwmul -Wall -Wshadow 
-DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=telosb 
-fnesc-cfile=build/telosb/app.c -board= -D'TOSH_DATA_LENGTH=102' 
-DIDENT_PROGRAM_NAME=\BaseStationC\ -DIDENT_USER_ID=\tandre\ 
-DIDENT_HOSTNAME=\homenux\ -DIDENT_USER_HASH=0xb4d39b1cL 
-DIDENT_UNIX_TIME=0x46cc4aafL -DIDENT_UID_HASH=0xeb773d58L  
BaseStationC.nc -lm
In file included from 
/opt/tinyos-2.x/tos/chips/cc2420/control/CC2420ControlC.nc:53,
 from 
/opt/tinyos-2.x/tos/chips/cc2420/csma/CC2420CsmaC.nc:61,
 from /opt/tinyos- 
2.x/tos/chips/cc2420/CC2420ActiveMessageC.nc:58,
 from 
/opt/tinyos-2.x/tos/platforms/telosa/ActiveMessageC.nc:61,
 from BaseStationC.nc:71:
In component `CC2420ControlP':
CC2420ControlP.nc :236: `CC2420Config.getShortAddr': async mismatch with 
declaration
/opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:64: previous 
declaration of `CC2420Config.getShortAddr'
CC2420ControlP.nc:244: `CC2420Config.getPanAddr': async mismatch with 
declaration
/opt/tinyos-2.x/tos/chips/cc2420/interfaces/CC2420Config.nc:70: previous 
declaration of `CC2420Config.getPanAddr'
CC2420ControlP.nc:76: `CC2420Config.setAutoAck' not implemented
CC2420ControlP.nc:76: `CC2420Config.isAddressRecognitionEnabled' not 
implemented
CC2420ControlP.nc:76: `CC2420Config.setAddressRecognition' not implemented
CC2420ControlP.nc:76: `CC2420Config.isAutoAckEnabled' not implemented
CC2420ControlP.nc:76: `CC2420Config.isHwAutoAckDefault' not implemented
In component `CC2420ControlC':
/opt/tinyos-2.x/tos/chips/cc2420/control/CC2420ControlC.nc:98: cannot 
find `ActiveMessageAddress'
make: *** [exe0] Error 1

I know that the CC2420 stack was changed in this last version. Are we 
still waiting for a updated BaseStationCC2420 (since in 2.0.2 cvs it 
seems to be deleted), or am I missing something?

Thanks in advance,
Tiago Camilo
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


  1   2   3   >