[Tinyos-help] [Fwd: Re: [Tinyos-2-commits] i need help to interface external device with micaz motes using UART interface]
Original Message Subject: Re: [Tinyos-2-commits] i need help to interface external device with micaz motes using UART interface From:"Philip Levis" <[EMAIL PROTECTED]> Date:Wed, June 13, 2007 7:06 am To: [EMAIL PROTECTED] -- Please send questions to tinyos-help. Phil On Jun 10, 2007, at 10:23 PM, [EMAIL PROTECTED] wrote: > Dear all, > > > i need help to interface external device with micaz motes using UART interface > > > here ia my configuration file: > - > > #include "hardware.h" > #include > configuration LeafAppc { > > > /*provides > { > interface HplAtm128Uart ; > }*/ > } > > implementation > > { > components LedsC,HplAtm128UartC,Atm128Uart0C,LeafAppcM ; > //new TimerMilliC() as Timer0; > >//LeafAppcM -> MainC.Boot; > LeafAppcM.Leds -> LedsC; > > //LeafAppcM. Uart0Init->HplAtm128UartP.Uart0Init; > > LeafAppcM. HplUart0 ->HplAtm128UartC.HplUart0 ; > > LeafAppcM. Uart0RxControl->HplAtm128UartC.Uart0RxControl; > > LeafAppcM. Uart0TxControl ->HplAtm128UartC.Uart0TxControl; > > //LeafAppcM.StdControl->Atm128Uart0C; > > LeafAppcM.UartByte ->Atm128Uart0C; > > LeafAppcM.UartStream ->Atm128Uart0C; > > //LeafAppcM.Timer0 -> Timer0; > > > } > > here is my module file: > > > > module LeafAppcM > > { > > > provides > { > interface StdControl; > } > > uses > { //interface Boot; > interface Leds; > //interface Init as Uart0Init; > interface HplAtm128Uart as HplUart0; > interface StdControl as Uart0RxControl; > interface StdControl as Uart0TxControl; > //interface StdControl ; > interface UartByte; > interface UartStream; > > //interface Timer as Timer0; > > } > > > > } > > > > implementation{ > > //task void Data_send(); > //bool isTxEmpty; > uint8_t uartbuf[25] = {55,00,55,00,00,00,55,55,0xff}; > uint8_t rxbuf[25] ; > uint16_t len_buf = 16; > //uint8_t size=55,size1=5,i=10; > > //event void Boot.booted() > command error_t StdControl.start() > { > > bool isTxEmpty,TRUE_leaf = 1,FALSE_leaf =0; > call Uart0TxControl.start(); > call Uart0RxControl.start(); > call UartStream.enableReceiveInterrupt(); > call HplUart0. enableRxIntr(); > call HplUart0. enableTxIntr(); > call Leds.led0On(); > //call Timer0.startPeriodic(500); > > if (!isTxEmpty) > { > isTxEmpty =TRUE_leaf ; > > atomic { > call HplUart0.enableTxCIE(); > call Leds.led1On(); > //for (i=0; i < size1 ; i++) > if (call UartStream.send(uartbuf, len_buf)) > return SUCCESS; > isTxEmpty = FALSE_leaf; > } > return FAIL; > } > > } > > > > > command error_t StdControl.stop() > { > call Uart0TxControl.stop(); > call Uart0RxControl.stop(); > call HplUart0. disableRxIntr(); > call HplUart0. disableTxIntr(); > call HplUart0.disableTxCIE(); > call UartStream.disableReceiveInterrupt(); > call Leds.led1On(); > return SUCCESS; > } > > async event void HplUart0.rxDone(uint8_t data) > { > } > async event void HplUart0.txDone() > { > call Leds.led2On(); > } > async event void UartStream.receivedByte(uint8_t byte) > { > } > > async event void UartStream. receiveDone(uint8_t *buf, uint16_t len, > error_t error) > { > if (error== SUCCESS) > { > call Leds.led1Toggle(); > } > } > > async event void UartStream.sendDone(uint8_t *buf, uint16_t len, > error_t > error) > { > if (error== SUCCESS) > { > call Leds.led2Toggle(); > } > } > > > } > > > thank you very much. > > bye, > moorthy.T > > > ___ > Tinyos-2-commits mailing list > [EMAIL PROTECTED] > https://mail.millennium.berkeley.edu/cgi-bin/mailma
Re: [Tinyos-help] Documentation regarding exact contents of the MAC Protocol Data Unit frame
Thank you, Steve McKown and Alexander Becher for your replies. Thanks to your help I more or less figured out how many bytes there were from the Address Information to be included in the MAC Header. According to: typedef nx_struct cc2420_header_t { nxle_uint8_t length; nxle_uint16_t fcf; nxle_uint8_t dsn; nxle_uint16_t destpan; nxle_uint16_t dest; nxle_uint16_t src; /** I-Frame 6LowPAN interoperability byte */ #ifdef CC2420_IFRAME_TYPE nxle_uint8_t network; #endif nxle_uint8_t type; } cc2420_header_t; I then have 9 bytes from the MHR, adding to 1 from length (PHR) and the 5 from the Synchronization Header (SHR), assuming (I don't think I'm mistaken here) the I-frame is not in use, giving a total of 15 bytes. The type byte is include in the payload (according to Steve). The payload, from the TestNetwork application, is typedef nx_struct TestNetworkMsg { nx_am_addr_t source; nx_uint16_t seqno; nx_am_addr_t parent; nx_uint16_t metric; nx_uint16_t data; nx_uint8_t hopcount; nx_uint16_t sendCount; nx_uint16_t sendSuccessCount; } TestNetworkMsg; since nx_am_addr_t is 2 bytes, this struct is 15 bytes. Adding the 1 from the type (as seen above), there's 16 bytes in payload. Since typedef nx_struct cc2420_footer_t { } cc2420_footer_t; and according to Steve, "The current radio stack has the cc2420 generate the FCS (crc) automatically", so I presume it's not included. This totals 31 bytes, and I read 32! If FCS was indeed included (2 bytes), i'd get 33 bytes!! Please notice i'm using a representation such as this http://www.eng.yale.edu/enalab/courses/eeng460a/homeworks/hw1_results/dataframe.gifto try and figure it out. This application uses CTP. Can it have anything to do with it? According to TEP-123 (http://www.tinyos.net/tinyos-2.x/doc/html/tep123.html), The CTP data frame format is as follows (check the URL for correct formatting): 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|C| reserved | THL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ETX | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | origin | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | seqno | collect_id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ But I don't know how to understand that, so it doesnt help me much. Also, I don't understand why the frame starts and ends with 0x7E. Is 7E both preamble and last byte in payload? Here's one example sequence again: 7E 45 00 FF FF 00 00 13 00 EE 00 01 00 00 00 07 80 EE 00 07 00 80 00 00 00 00 20 00 00 53 63 7E I believe the EE is the Collection ID, as seen from TestNetworkC.h, which might relate to the CTP frame (http://www.tinyos.net/tinyos-2.x/apps/tests/TestNetwork/TestNetworkC.h), but I'm not sure that helps. The FF FF could also be from, but I can't be sure: call UARTSend.send(0x, recvPtr, call Receive.payloadLength(msg) + 4) == SUCCESS) Many thanks and sorry for the confusing posts! Hope you help me figure this out byte by byte and make sense out of it. Very best regards, Pedro /** * CC2420 Packet Footer */ typedef nx_struct cc2420_footer_t { } cc2420_footer_t; On 6/11/07, Steve McKown <[EMAIL PROTECTED]> wrote: On Friday 08 June 2007 13:21, Pedro Almeida wrote: > Hello; > > I'm trying to look for documentation where I can understand the exact > contents, byte by byte, of the MPDU. I've looked into the TEPs and the > source files themselves, butI wasn't completely clear. > > I'm using now the TestNetwork demo, where I receive 32 bytes per message, > of which I know little about, except for the contents of the message_t > itself: > > typedef nx_struct TestNetworkMsg { > nx_am_addr_t source; > nx_uint16_t seqno; > nx_am_addr_t parent; > nx_uint16_t metric; > nx_uint16_t data; > nx_uint8_t hopcount; > nx_uint16_t sendCount; > nx_uint16_t sendSuccessCount; > } TestNetworkMsg; > > That are not, by far, 32 bytes. > So far I understood the MPDU is made of > > 2 bytes - Frame Control > 1 byte - Data Sequence Number > 4 to 20 bytes - Address Information > n bytes - Data Payload > 2 bytes - Frame Check Sequence > > which adds 5 bytes of the SHR and 1 byte of the PHR. So what exactly are > those 32 bytes??? Which ones are the payload (MSDU) and which ones are not > (and what are they?)? > > An example of the 32 bytes is as follows: > > 7E 45 00 FF FF 00 00 13 00 EE 00 01 00 00 00 07 80 EE 00 07 00 80 00 00 00 > 00 20 00 00 53 63 7E The data above looks like an active message (AM) delivered via a serial physical layer. The hint are the 0x7E bytes, which are sync bytes. If this output came from the PC, then you should be able to map it to the serial_packet_t in $TOSDIR/lib/serial/Serial.h. The payload are delivered within the frame appropriate for the link on which the data is sent. Hence, one sees the serial headers and not the radio headers. I haven't played with Collection or the TestNetwork app, so I can't help out there. But I can provide some info on how the CC2420 component populates the 802.15.4 compatible frame. You
Re: [Tinyos-help] Generic Modules with Numeric Types?
On 6/12/07, J. Ryan Stinnett <[EMAIL PROTECTED]> wrote: Does the @number() attribute work across multiple layers? I would think that it should be able to, but perhaps I'm not using it correctly. I realize that the test case below wouldn't do anything at run time, but I believe the syntax is still correct. I get the error: It should. If it doesn't, it's a bug... I'll look into it. David Gay In file included from TestNumberC.nc:5: In component `NumberC': NumberC.nc:5: parameter 1 must be a numerical type TestNumberC.nc: configuration TestNumberC {} implementation { components new NumberC(uint8_t); } NumberC.nc: generic configuration NumberC (typedef num_t @number()) {} implementation { components new NumberP(num_t); } NumberP.nc: generic module NumberP (typedef num_t @number()) {} implementation { num_t test; } Thanks, Ryan Quoting David Gay <[EMAIL PROTECTED]>: > From the nesC documentation (somewhat hidden in /usr/share/ncc/doc, > admittedly): > > It is also possible to declare, using the special @integer() and @number() > attributes, that a type parameter is of an integral (respectively numerical) > type. In that case, all the operations allowed on integers (respectively, > integers and floating-point numbers) are allowed: > > generic module Sort(typedef t @number()) { } > implementation { > ... > void f() { > t x1, x2; > ... > if (x1 < x2) > ... > } > > David Gay > > ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Using micaz with TinyDB
On Sat, June 9, 2007 4:26 pm, M.Mehdi Moniri said: > > Hi everyone, > As in > > http://www.mail-archive.com/tinyos-help@millennium.berkeley.edu/msg07297.html > > I have problem with TinyDB (GUI). I think that Micaz motes receive query > properly but no data appears in the query window (GUI). Im using TinyOS > 1.1.11 , micaz and mib510. > > Ill be more than glad if some one can help me! > > Thank you, > Mehdi > I don't know much about TinyDB, but try updating to 1.1.15 first and see if that helps. Also check your JAVA version and path. Type "env | grep -i "path" > path.txt" and check out path.txt -- The difference between the right word and the almost right word is really a large matter- it's the difference between a lightning bug and the lightning. -Twain ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] SerialStubFactory for PrintBigMsg (soundrecorder app)
Hi, I am trying to use the SoundRecorder application presented at http://tinyos.cvs.sourceforge.net/tinyos/tinyos-1.x/contrib/vu/apps/ it is complemented with two files PrintBigMsg.java and Txt2Wav.java Actually I can't compliue PrintBigMsg file. It needs another file named SerialStubFactory but it doesn't exist anywhere. I will be so thankful if anyone help me guys. Emad Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] [TinyOS-2.x] CollectionSenderC.send() command is not working
On Sat, June 9, 2007 4:11 am, Peizhao Hu said: > > I also tried to increase the message size by MSG_SIZE=50 as well, but it > doesn't work. Are you trying it with "-DTOSH_DATA_LENGTH=50" in your makefile? Check TEP 111. If I wanted 50, I'd set "-DTOSH_DATA_LENGTH=52" or more to prevent my app from bombing if I made a counting error, then resize it down as the last thing in the project. -- The difference between the right word and the almost right word is really a large matter- it's the difference between a lightning bug and the lightning. -Twain ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Generic Modules with Numeric Types?
Does the @number() attribute work across multiple layers? I would think that it should be able to, but perhaps I'm not using it correctly. I realize that the test case below wouldn't do anything at run time, but I believe the syntax is still correct. I get the error: In file included from TestNumberC.nc:5: In component `NumberC': NumberC.nc:5: parameter 1 must be a numerical type TestNumberC.nc: configuration TestNumberC {} implementation { components new NumberC(uint8_t); } NumberC.nc: generic configuration NumberC (typedef num_t @number()) {} implementation { components new NumberP(num_t); } NumberP.nc: generic module NumberP (typedef num_t @number()) {} implementation { num_t test; } Thanks, Ryan Quoting David Gay <[EMAIL PROTECTED]>: > From the nesC documentation (somewhat hidden in /usr/share/ncc/doc, > admittedly): > > It is also possible to declare, using the special @integer() and @number() > attributes, that a type parameter is of an integral (respectively numerical) > type. In that case, all the operations allowed on integers (respectively, > integers and floating-point numbers) are allowed: > > generic module Sort(typedef t @number()) { } > implementation { > ... > void f() { > t x1, x2; > ... > if (x1 < x2) > ... > } > > David Gay > > ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
RE: [Tinyos-help] CC1000 Channels
That got me on the right path. I was using variable expansion, and when I put an absolute path in, it worked. I was using the variable $TOSDIR for expansion. I'll have to investigate further what I did (or didn't) do, but it appeared correct in the ncc echo output. CFLAGS wasn't working, but PFLAGS was. With nesC 1.1.2 if that helps. I think there was a change to that option with 1.1.3? Thanks, -Ben On Mon, June 11, 2007 7:53 pm, David Moss said: > The problem you describe sounds like it's not pulling in the right files > during compile time. In your Makefile, try using CFLAGS instead of PFLAGS. > > CFLAGS += -I/opt/tinyos-1.x/tos/contrib/rincon/tos/platform/mica2 > (or whatever directory you're using) > > If the compiler can't find that and your other files are missing, then the > compiler will generate an error and at least you'll know. > > You shouldn't need to restart the radio after changing its frequency once > everything is pulled in correctly. > > Also, be sure to verify the CC1000Const.h is using 433 MHz - I'm using 900 > MHz, so I know what I uploaded to contribs won't be automatically compatible > with your hardware. > > -David > > > > > -Original Message- > From: Benjamin Madore [mailto:[EMAIL PROTECTED] > Sent: Monday, June 11, 2007 4:14 PM > To: David Moss > Cc: tinyos-help@millennium.berkeley.edu > Subject: RE: [Tinyos-help] CC1000 Channels > > I have altered TOS_Base to change frequencies. > > When I have it change frequencies, it never resumes forwarding. > > I added: > > PFLAGS += -I/opt/tinyos-1.x/tos/contrib/rincon/tos/platform/mica2 > > to my makefile, but I haven't been able to confirm it's actually using the > rincon stack.I'm not sure I'm getting the contrib. files to include > properly. I tried altering several to generate errors, and nothing changed. > > The app is in /workspace/Base (I use the Eclipse plugin) > > I used the LEDs to debug, and the change frequency call is returning > correctly. > > I'm calling > > call CC1000Control.TunePreset(action); > > where action is the preset number sent over the UART from the packet. > > Should I be turning on and off the radio? > > What I'd really appreciate is a pointer to someone else who has done > something similar with Mica2 motes, and has it working. > > (TinyOS 1.x, Cygwin, Mica2 motes, 433Mhz) > > -Ben > > On Wed, May 2, 2007 3:13 pm, David Moss said: >> The preset table is actually in the CC1000Const.h file. You'll see it's > an >> array of register values starting with: >> >> static const prog_uchar CC1K_Params[6][31] = { >> >> }; >> >> There are two functions you can call in your application in TinyOS 1.x to >> adjust the frequency through the CC1000Control interface: >> >> command result_t TunePreset(uint8_t freq); >> >> command uint32_t TuneManual(uint32_t DesiredFreq); >> >> The difference between TunePreset and TuneManual is that TuneManual > actually >> calculates what the CC1000 register values should be, and the TunePreset >> contains pre-calculated values. >> >> The problem is the default CC1000 stack is broken when it comes to > changing >> frequencies at runtime. So if you plan on doing runtime frequency > changes, >> you should really be using Rincon's CC1000 stack (stable but unsupported) > in >> tinyos-1.x/contribs/rincon/tos/lib/CC1000Radio >> >> -David -- The difference between the right word and the almost right word is really a large matter- it's the difference between a lightning bug and the lightning. -Twain ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Regarding Labview and Time
Hi all, I am using Tmote and Tinyos 1.1. I want to collect data at base node using labview, so is it possible to collect data using Labview?, if somebody knows how to do it please tell me. Also is there any way I can find out the approximate time at which the samples where taken by the remote nodes, so that it is know that when a particular event occured? Thank you Manu - Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] make: *** [sim-exe] Error 2
Hello. When I try to compile Blink Application to TOSSIM, I get the error showed below. It seems I have an environment variable wrong, but I was looking for it, so, It seems ok. I'm using tinyos 2.0.1, Win XP SP2 + Cygwin. TOSROOT=/opt/tinyos-2.x TOSDIR=/opt/tinyos-2.x/tos MAKERULES=/opt/tinyos-2.x/support/make/Makerules CLASSPATH='C:\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar;.' PATH='/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/WINDOWS/system32:/ cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Archivos de programa/Java/jdk1.6.0_01/bin:/cygdrive/c/Archivos de programa/Java/jdk1.6.0_01/jre /bin:/cygdrive/c/Archivos de programa/QuickTime/QTSystem/:/opt/msp430/bin' $ ncc --version ncc: 1.2.1 nescc: 1.2.8a gcc: gcc (GCC) 3.3.3 (cygwin special) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. I'll appreciate your help. cheers, Latro ++ [EMAIL PROTECTED] /opt/tinyos-2.x/apps/Blink $ make telosb sim mkdir -p build/telosb placing object files in build/telosb writing XML schema to app.xml compiling BlinkAppC to object file sim.o ncc -c -DUSE_DL_IMPORT -fpic -o build/telosb/sim.o -g -O0 -O -tossim -fnesc-nid o-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -mdisable- hwmul -Wall -Wshadow -DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=telosb -fnesc-cf ile=build/telosb/app.c -board= -Wno-nesc-data-race BlinkAppC.nc -fnesc-dump=c omponents -fnesc-dump=variables -fnesc-dump=constants -fnesc-dump=typedefs -fnes c-dump=interfacedefs -fnesc-dump=tags -fnesc-dumpfile=app.xml Unknown target telosb Known targets for TinyOS directory /opt/tinyos-2.x/tos and the specified include directories are: eyesIFXv1 eyesIFXv2 intelmote2 mica2 mica2dot micaz null telosa telosb tinynod e make: *** [sim-exe] Error 2 +++ _ Te gusta estar en control, crea tu propia experiencia en Internet http://live.com ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Re: PacketLink/RadioBackoff unexpected behavior
Hi David, Thanks once again for your inputs. I understand that there is SPI contention problem. However, I installed "TestPacketLink" app which does not use flash at all and still the acks are not received. Moreover, when I install the TestAcks app (which uses PacketAcknowledgement) the transmitter starts receiving acknowledgements. Also, what is the advantage of using PacketLink over PacketAcknowledgements except for the application level retries/delays in the latter? Any ideas? Secondly, it is fine till the transmitting mote with small backoff is able to get its packets first to the receiver. This way the receiver should be able to send the acknowledgement first to the mote with small backoff so that it again send other packets early. Mayur, The problem with PacketLink is the fact that your acknowledgements are being dropped. The wasDelivered() command simply forwards to PacketAcknowledgements.wasAcked(). This could be caused by several things, but since you're probably using flash, that's probably the reason why. The SPI bus arbitration prevents the radio from handling acknowledgements correctly while the flash is in use. This is a known issue, and I have a fix going on my machine but don't have it ready for release. The fix involves forcing the CC2420 to hang onto the SPI bus while it is waiting for an acknowledgement. On your second issue, the backoffs should be in units of microseconds. Again, the CC2420 has to acquire the SPI bus before it can read a packet from the chip and this process, combined with actually reading bytes over SPI, could potentially last longer than the backoffs you have specified. In other words, the SPI bus will probably remain active and read both packets in simultaneously because there's not a big enough time delay between the two transmissions. Statically specifying your backoff period like you have should force mote A to get its packet through first, but you probably won't be able to detect which transmitter transmitted first unless you check both packets' source addresses. Hope that helps, -David -- *From:* Mayur Maheshwari [mailto: [EMAIL PROTECTED] *Sent:* Monday, June 11, 2007 4:29 AM *To:* David Moss; tinyos-help@millennium.berkeley.edu *Subject:* PacketLink/RadioBackoff unexpected behavior Hi David, It was nice of you that you helped me with the information on blackbook. However there seems to be problem galore ;) 1. PacketLink I tried using the PacketLink interface in one of my apps and it fails to receive the acks. Previously, I was using the PacketAcknowledgements interface and it was running absolutely fine. However, it seems that the wasDelivered(msg) event in PacketLink returns FALSE all the time. I tried testing the app TestPacketLink in \tinyos- 2.x\apps\tests\cc2420\TestPacketLink and the acks were never received and the Transmitter toggled led0 every 2 secs. Again, I tested the TestAcks in \tinyos- 2.x\apps\tests\cc2420\TestAcks which uses the interface PacketAcknowledgements and this does gives positive results. 2. RadioBackoff I tested radiobackoff by having events in an app installed on two motes(A and B). I initialised the Initial Backoff times as 11 and 300 for both the motes resp. Now, I installed another app on another mote C which broadcasts and when A and B receive this broadcast they unicast their messages to C. It was expected that the message from mote B should be delayed by ~ 300 ms but I noted both the messages getting into C simultaneously. To be more clear on this aspect I recorded the events in a video and played at slower speeds but to no avail. The Leds on the mote C blink in 2~3 ms delay and I could not determine which packet went first. Would you be able to share some code in this regard. Thank you once again for all the help. Mayur -- Mayur Maheshwari( [EMAIL PROTECTED]) "Karmanye Vadhikaraste Ma Phaleshu Kadachana, Ma Karma Phala Hetur Bhurmatey Sangostva Akarmani" -- Mayur Maheshwari([EMAIL PROTECTED]) "Karmanye Vadhikaraste Ma Phaleshu Kadachana, Ma Karma Phala Hetur Bhurmatey Sangostva Akarmani" ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] frequency of micaz motes
On Tue, June 12, 2007 12:17 pm, projet19 projet19 said: > Hi, > > Which frequency and channel should we use to establish communications > between MICAZ motes? > > > Thanks > > > Ahmed Dehbi & Tony Gomes Any defined frequency will work. So long as all motes use the same frequency. See: http://tinyoscommunity.elwiki.com/Frequencies_Available It is a 2420/ZigBee radio at the bottom. Since it overlaps with 802.11 radios, some frequencies may be clearer then others if you have wireless networking. Someone else here should know which ones. -- The difference between the right word and the almost right word is really a large matter- it's the difference between a lightning bug and the lightning. -Twain ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] frequency of micaz motes
Hi, Which frequency and channel should we use to establish communications between MICAZ motes? Thanks Ahmed Dehbi & Tony Gomes Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. http://sims.yahoo.com/ ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] tmote mini - SDIO in miniSD mode
On 6/12/07, Steve McKown <[EMAIL PROTECTED]> wrote: On Tuesday 12 June 2007 02:06, julien falco wrote: > Hi just received a tmote mini dev kit, and I've noticed that the miniSD > mode provides 3 I/O ports, called D0, D1 and D2. > My question is, is it possible to use those pins as UARTO, like the example > given by tmote here > http://www.moteiv.com/community/Boomerang_UART0_Sample ? You can only use those pins as UART0 if they are tied to the pins on the msp430 that provide the UART0 RX and TX module functions. The miniSD pins are tied to UART1 and you may use them for UART functionality. UART0 is also exposed, although on a different location of the device. Please see the full Tmote Mini Specification that was shipped with your order. If you need another copy, please contact [EMAIL PROTECTED] -Joe ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] How to restart a TOSSIM simulation TinyOS 2.x
On Jun 12, 2007, at 5:42 AM, Marek Jawurek wrote: Well I tried turning the nodes off and on again but I get a segmentation fault. So I tried the example c++ Driver from Tutorial 11 to be able to use gdb on it. I appended the Driver sourcecode with my modifications. I compile it with: g++ -g -c -o ctest.o ctest.cpp\ -I/data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim g++ -g -o ctest ctest.o build/micaz/tossim.o build/micaz/sim.o\ build/micaz/c-support.o "gdb ctest" produces: (gdb) run Starting program: /data/hiwi/tinyos/tinyos-2.x/apps/ProbFlooding/ctest Program received signal SIGSEGV, Segmentation fault. 0x in ?? () (gdb) bt #0 0x in ?? () #1 0x0804bd70 in sim_run_next_event () at /data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim/sim_tossim.c:118 #2 0x0804ae67 in Tossim::runNextEvent (this=0x80d3008) at /data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim/tossim.c:278 #3 0x08049980 in main () at ctevst.cpp:21 As I receive dbg output from my program's channel and Tossim dbg here is the complete output of ctest (without gdb) http://jawurek.net/ ProbCDUMP At the end it appears if the sim_ticks var has overrun ? Is this now a problem in my program for the nodes or some internal TOSSIM error ? Any help greatly appreciated. It could be either, but it's more likely TOSSIM. I've never tested trying to reset a simulation. I'll try to reproduce the bug and hopefully the fix(es) will make their way into 2.0.2. Phil ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Does anyone know what is the scale of a sensor network deployment ?
On Tuesday 12 June 2007 06:45, tomoto wrote: > Hi, all. I currently work on deploying a sensor network. > Does anyone know what the typical scale, i.e. the number of sensor nodes > involved , of a sensor network is (in single-tier)? Or, papers address this > issue ? I don't have a good answer for you, but a few links: There was an 800 node demo at Berkely in 2001: http://webs.cs.berkeley.edu/800demo/ This paper talks about lessons from a live deployment in Maine: http://www.polastre.com/papers/ewsn04.pdf There is a list of projects using TinyOS at http://webs.cs.berkeley.edu/users/select_users.php . You might find some useful links there. Steve ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] GPIO on port16 not working
Hi, Im trying to use gpio to output a signal on port16 (GIO2) but I always got 0. When using the exact same code on port 26 or 62 everything works fine. I also tried to set the io function by the selectIOFunc() method but nothing changed. I tried on differents motes (telosb / tinyos 2.x). Why cant I set this port to 1 with set() ? thanks ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] tmote mini - SDIO in miniSD mode
On Tuesday 12 June 2007 02:06, julien falco wrote: > Hi just received a tmote mini dev kit, and I've noticed that the miniSD > mode provides 3 I/O ports, called D0, D1 and D2. > My question is, is it possible to use those pins as UARTO, like the example > given by tmote here > http://www.moteiv.com/community/Boomerang_UART0_Sample ? You can only use those pins as UART0 if they are tied to the pins on the msp430 that provide the UART0 RX and TX module functions. > > I have developed a program that uses pins UARTORX, UARTOTX and GND of the > 10 pin expansion connector on the tmote sky, and I am willing to use it > with the tmote mini (and a sd slot or something). Is it possible, if yes, > how? > > Thanks in advance, I am here a beta tester without the sufficient knowledge > > :-) > > !DSPAM:466e9a40114231804284693! ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] where is the function came from?
On Monday 11 June 2007 20:30, abdullah borhanuddin wrote: > where can i find init(), start(), and stop() function in StdControl.nc? StdControl.nc is an interface, which can then be used and provided by various system components. If you look around in the tos distribution, you will find many implementations of the StdControl for various purposes. The concept of interfaces is discussed in some detail in Philip Levis' "TinyOS Programming", found at http://csl.stanford.edu/~pal/pubs/tinyos-programming.pdf. ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Motes don't receive messages from our computer
Hello, We are working on a project with micaZ motes and MIB600 Gateway Platform We have done the procedure as follow : 1- load the mote O with TOSBASE program make micaz install.0 eprb, 2- load two motes with Surge program make micaz install.1 eprb, make micaz install.2 eprb, 3- export [EMAIL PROTECTED]:9001 4- java net.tinyos.sf.SerialForwarder -comm network@:10002& 5- Here we can see the packet read rising on serialForwarder GUI 6- java net.tinyos.surge.MainClass 125& The surge java interface shows the topology of the network but Then we cannot see the message received by the motes incrementing on the Surge GUI but always shows 0 msg for each node, even though the serialForwarder keeps on incrementing the number of pckts read. So what we can do to solve this problem, Thank you. Tony GOMES And Ahmed DEHBI Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545469___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] How to restart a TOSSIM simulation TinyOS 2.x
Well I tried turning the nodes off and on again but I get a segmentation fault. So I tried the example c++ Driver from Tutorial 11 to be able to use gdb on it. I appended the Driver sourcecode with my modifications. I compile it with: g++ -g -c -o ctest.o ctest.cpp\ -I/data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim g++ -g -o ctest ctest.o build/micaz/tossim.o build/micaz/sim.o\ build/micaz/c-support.o "gdb ctest" produces: (gdb) run Starting program: /data/hiwi/tinyos/tinyos-2.x/apps/ProbFlooding/ctest Program received signal SIGSEGV, Segmentation fault. 0x in ?? () (gdb) bt #0 0x in ?? () #1 0x0804bd70 in sim_run_next_event () at /data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim/sim_tossim.c:118 #2 0x0804ae67 in Tossim::runNextEvent (this=0x80d3008) at /data/hiwi/tinyos/tinyos-2.x/tos/lib/tossim/tossim.c:278 #3 0x08049980 in main () at ctevst.cpp:21 As I receive dbg output from my program's channel and Tossim dbg here is the complete output of ctest (without gdb) http://jawurek.net/ProbCDUMP At the end it appears if the sim_ticks var has overrun ? Is this now a problem in my program for the nodes or some internal TOSSIM error ? Any help greatly appreciated. Marek ctest.cpp: #include #include int main() { Tossim * t = new Tossim(NULL); t->addChannel("Prob",stdout); t->addChannel("Tossim",stdout); Radio * r = t->radio(); int maxN=3; for(int i =0;igetNode(i); m->bootAtTime(0); for( int j =0;jadd(i,j,-50.0); } m->createNoiseModel(); } while(true) { for (int i=0;i<500;i++){ t->runNextEvent(); } for(int i=0;igetNode(i)->turnOff(); for(int i=maxN-1;i>=0;i--) t->getNode(i)->turnOn(); } } Am Dienstag, den 12.06.2007, 12:01 +0200 schrieb Marek Jawurek: > Am Montag, den 11.06.2007, 09:28 -0700 schrieb Philip Levis: > > On Jun 11, 2007, at 1:49 AM, Marek Jawurek wrote: > > > > > Hi, > > > > > > recently I ran into problems with TOSSIM of TinyOS version 1.x > > > which did > > > not reset completely. Motes did not communicate after the reset > > > properly. Because of that and because of the fact that most > > > documentation and development are done for TinyOS 2.x I changed my > > > application to TinyOS 2.x and tried TOSSIM there. > > > > > > Someone should change Tutorial 11 and emphasize that without calling > > > createNoiseModel on every Node there won't be any communication. It > > > was > > > rather frustrating for me to search through my code and compare it to > > > sample code until I found the solution in the Mailinglist. Intuitively > > > it should just work when I connect 2 nodes via Radio.add(). > > > > > > But here is my current problems. I want to run several simulations and > > > the following issues arise: > > > > > > 1. My simulation goes on forever, every call to runNextEvent returns 1 > > > but my motes only react on radio communication which is initiated by > > > node 1 once and then just rebroadcast. Every time I rebroadcast a > > > message I also print dbg output. No debug output is created after a > > > while but runNextEvent still returns new events. > > > > Does your application have any timers in it? As long as your > > application is doing anything, TOSSIM will simulate it... Among other > > things, having timers means that there's a 32kHz clock running, for > > the interface LocalTime. > > No, afaik it does not use Timers. I uploaded my application to > http://jawurek.net/ProbC.nc and > http://jawurek.net/ProbAppC.nc . > It is a simple Probability Flooding approach. The constant PROB is > defined in another file but from these two files you can see that there > are no Timers involved. Does ActiveMessageC use Timers ? > > > > > > > > 2. I would like to restart a simulation in Python. That means > > > resetting > > > everything unique to the last run and to start another run with > > > TOSSIM. > > > How can I do that ? Using the constructor Tossim([]) apparently a > > > singleton is passed because the time in the new Tossim object is the > > > same as before. Deleting the module TOSSIM with 'del TOSSIM' and > > > re-importing it doesn't work either. > > > > > > > Hm. The current TOSSIM implementation doesn't support doing this. > > While you can turn motes on and off to reset their internal state, > > other pieces of state will remain, such as the radio topology. You > > could fork within Python to get separate instances... > > Ok, I understand. So if I understand correctly I could turn Off all > motes and turn them on again. This actually has the advantage of not > having to re - set all topology related stuff. All I would have to > account for is the new simulation start time which is not zero but the > current time ? Do I have to call bootAtTime again for every node ? Or > will they boot immediately ? > > Marek > > > > > > > > ___ > Tinyos-help mailing list > Tinyos-help@Millennium.Berkeley.EDU > https://mail.m
[Tinyos-help] Does anyone know what is the scale of a sensor network deployment ?
Hi, all. I currently work on deploying a sensor network. Does anyone know what the typical scale, i.e. the number of sensor nodes involved , of a sensor network is (in single-tier)? Or, papers address this issue ? Thank you. ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Documentation regarding exact contents of the MAC Protocol Data Unit frame
* Pedro Almeida: >I'm using a micaz, so it is CC2420 indeed. >I've looked into the Zigbee specification, 802.15.4 frame formats and >understood (I believe, even if lightly) the frame formats. >But I am not sure of what the 32 bytes I receive are, exactly. Recently, I looked at data gathered by java net.tinyos.tools.Listen, over USB serial ports, which was a bunch of lines like this one: 0C 00 00 00 00 00 7E 00 2A 7D 00 00 1F 00 02 00 00 00 D3 00 4D 00 I explained it like this: #!! little endian #uint8_t length = sizeof (data) = sizeof (struct SignalMsg) = 0Ch #uint16_t fcf = 0 (n/a for UART) #uint8_t dsn = 0 (n/a for UART) #uint16_t destpan = 0 (n/a for UART) #uint16_t addr = 0x007E = TOS_UART_ADDR #uint8_t type = 0x2A = 42 = AM_SIGNALMSG (GenericComm interface parameter 42) #uint8_t group = 0x7D = TOS_AM_GROUP #struct SignalMsg { // this was the message structure defined in my programme # uint16_t nodeID; // local node address = XX # uint16_t senderID; # uint32_t seqNum; # uint16_t rssiVal; # uint16_t lqiVal; #}; The CC2420 data sheet says that the length byte is the first byte put into RXFIFO, the rest is according to message_header_t. It helped reading the receive routines of the radio stack, and tracing the send calls through to the UART implementation, to understand which fields were set. In your case, there might be other pieces of code composing the message. Try to find the function that sends the data, from there you can normally see what headers are being used and what are their values. Hope this helped, Alexander ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] SPSend
I have a silly question for SPSend. I am trying to send packets from tmote sky to pc. I am trying to use SPSend, since people recommend to use it in place of GenericComm. I have been watching a few examples - such as this one (TestUart0P from http://www.moteiv.com/community/Boomerang_UART0_Sample): implementation { sp_message_t m_spmsg; TOS_Msg m_tosmsg; enum { UART_TX_BYTE = 0x12, }; void sendMessage() { if (call SPSend.send(&m_spmsg, &m_tosmsg, TOS_BCAST_ADDR, 2) == SUCCESS) { call Leds.greenOn(); } } Here Joe seems to be sending the address location of m_spmsg, and not what it contains, am I right?? Why would he do that? And now, how can I send my packets? lets say I have 4 byte (0x00 0x12 0x44 and 0xFF), how do I create a sp_message_t out of that? Thank you for you help! ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] How to restart a TOSSIM simulation TinyOS 2.x
Am Montag, den 11.06.2007, 09:28 -0700 schrieb Philip Levis: > On Jun 11, 2007, at 1:49 AM, Marek Jawurek wrote: > > > Hi, > > > > recently I ran into problems with TOSSIM of TinyOS version 1.x > > which did > > not reset completely. Motes did not communicate after the reset > > properly. Because of that and because of the fact that most > > documentation and development are done for TinyOS 2.x I changed my > > application to TinyOS 2.x and tried TOSSIM there. > > > > Someone should change Tutorial 11 and emphasize that without calling > > createNoiseModel on every Node there won't be any communication. It > > was > > rather frustrating for me to search through my code and compare it to > > sample code until I found the solution in the Mailinglist. Intuitively > > it should just work when I connect 2 nodes via Radio.add(). > > > > But here is my current problems. I want to run several simulations and > > the following issues arise: > > > > 1. My simulation goes on forever, every call to runNextEvent returns 1 > > but my motes only react on radio communication which is initiated by > > node 1 once and then just rebroadcast. Every time I rebroadcast a > > message I also print dbg output. No debug output is created after a > > while but runNextEvent still returns new events. > > Does your application have any timers in it? As long as your > application is doing anything, TOSSIM will simulate it... Among other > things, having timers means that there's a 32kHz clock running, for > the interface LocalTime. No, afaik it does not use Timers. I uploaded my application to http://jawurek.net/ProbC.nc and http://jawurek.net/ProbAppC.nc . It is a simple Probability Flooding approach. The constant PROB is defined in another file but from these two files you can see that there are no Timers involved. Does ActiveMessageC use Timers ? > > > > 2. I would like to restart a simulation in Python. That means > > resetting > > everything unique to the last run and to start another run with > > TOSSIM. > > How can I do that ? Using the constructor Tossim([]) apparently a > > singleton is passed because the time in the new Tossim object is the > > same as before. Deleting the module TOSSIM with 'del TOSSIM' and > > re-importing it doesn't work either. > > > > Hm. The current TOSSIM implementation doesn't support doing this. > While you can turn motes on and off to reset their internal state, > other pieces of state will remain, such as the radio topology. You > could fork within Python to get separate instances... Ok, I understand. So if I understand correctly I could turn Off all motes and turn them on again. This actually has the advantage of not having to re - set all topology related stuff. All I would have to account for is the new simulation start time which is not zero but the current time ? Do I have to call bootAtTime again for every node ? Or will they boot immediately ? Marek ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Help with ADC
Hi i use tinyos 1.1, and i have a question: in SenseToInt there is a part of code that i don't understand: "void task outputTask() { uint16_t rCopy; atomic { rCopy = reading; } call IntOutput.output(rCopy >> 7); }" why there is >>7?? i try to use the code with the sensor of Temperature of Tmote sky and i find out a value of temperature that is impossible. ( I USE "value/4096 * Vref" AND "T = (Vtemp - 0.986)/0.00355" ) Where is the mistake??? -- Passa a Infostrada. ADSL e Telefono senza limiti e senza canone Telecom http://click.libero.it/infostrada ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] tmote mini - SDIO in miniSD mode
Hi just received a tmote mini dev kit, and I've noticed that the miniSD mode provides 3 I/O ports, called D0, D1 and D2. My question is, is it possible to use those pins as UARTO, like the example given by tmote here http://www.moteiv.com/community/Boomerang_UART0_Sample ? I have developed a program that uses pins UARTORX, UARTOTX and GND of the 10 pin expansion connector on the tmote sky, and I am willing to use it with the tmote mini (and a sd slot or something). Is it possible, if yes, how? Thanks in advance, I am here a beta tester without the sufficient knowledge :-) ___ Tinyos-help mailing list Tinyos-help@Millennium.Berkeley.EDU https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help