[Tinyos-help] Generating 40 kHz from MSP using TinyOS
Hi to all, I want to generate 40 kHz from MSP430F1611 with TinyOS 1.15. I am using compare mode of TimerA2. I set TA2 as compare mode, set an event with CompareA2.setEventFromNow(1000) command and when it is fired CompareA2.setEventFromPrev(1000) is called. I observed 1 kHz signal at the output. Like that when i set the event with 100, i observed 10 kHz signal. According to these results, i expect that approximately 40 kHz signal at output when event is set form now and previous with parameter 12 (25/2). But it is not achieved. With 5 parameter, 33kHz is achieved, but higher frequencies are not. Then after a little survey, I concluded that tos\tos\platform\msp430\MSP430ClockM.nc module file is executed while device booting. In command void MSP430ClockInit.defaultInitClocks(), I set the divisor of SCLK to 1 with BCSCTL2 = 0, in order to increase the clock frequency. But again 1 kHz signal is seen with parameter 1000 while 4kHz is expected.Trials with other parameters do not work. I will be glad, if you lead me to solve this problem. Firat TARAKTAS http://www.genetlab.com/ ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Simple About Hello world application, please help me out with this
Dear all, Could any one here help me out with telling me how to write a helloworld nesC program, then put it into TOS_Msg of the oscopeMsg program? Actually what I wanna implement is send the string data helloworld from a mote to PC, then in PC side use MIG to unpack the packet, and show the result helloworld. I know I can use SerialForwarder with OscopeMsg to display data on PC, but I don't know how to put the source data like helloworld into a packet to send, I have read the OscilloscopeM.nc file, but don't know how they put data into TOS_Msg variable, So could anyone help me with how to put source data into TOS_MSg please? Or if you I was wrong and you have any suggestion, all are extremely appreciate. Thanks very much. -- Best wishes, Kenneth Chan Wish you have a good day! ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] write firmware via serial port
Dear, I have some cricket nodes, on which there are a 51 pin and a serial port. Generally, I plug cricket's 51pin into MIB510 board in order to write firmware program. I am wondering if there is possibility that I can write firmware into cricket via serial port. I mean I use a line to connect directly between Computer's and Cricket's serial port. B.R Stephen ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] UART ReceiveMsg
Do you mean I don't remove the 0x7e bytes on each end? Inderjit On 4/12/07, Ben Buckner [EMAIL PROTECTED] wrote: Oh, you have to provide the framing structure with any packet you send to the mote. The protocol doesn't change. Ben -Original Message- From: Inderjit Singh [mailto:[EMAIL PROTECTED] Sent: Thursday, April 12, 2007 2:46 AM To: Ben Buckner Subject: Re: [Tinyos-help] UART ReceiveMsg Thanks Ben, I tried something very simple: 1. I get the byte stream from usb sent from the TMote like: 7e 42 xx xx xx xx 7e 2. I remove the 7e from the stream and send it back as it is (42 xx xx xx xx). But I still don't get it. C/C++ should be able to handle this no? Is there any doc on how the serial communication should be established. I have gone through the java code for sending but still it would help with a doc. Indy On 4/11/07, Ben Buckner [EMAIL PROTECTED] wrote: Hi, I have trouble sending msg from laptop (using c++) code to tmote. All the code is at the bottom. I have no problem reading the data from the serial but sending it back dooesn't seam to work. Anyone knows why? Thanks. Indy [...] memcpy(output_buffer, msgOUT, sizeof(msgOUT)); Out of the dozens of things that could be wrong, it might be worth pointing out that C does not guarantee that structures can be serialized by copying bytewise out of memory like that. It can work, but you never know. The most usual reason why that would fail is if the compiler tries to align the members of the structure and inserts padding (which it almost always does with odd-sized byte fields). At any rate, it would be a good idea to make sure that the code really generates the byte stream that you think it's generating. Ben B. ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] OscilloscopeRf and TOSBase application with multihop
Hi everyone, This is my first e-mail:) I'm starter in developing TinyOS applications. I've tried a sense application in TinyOS 1.15. I'm getting sensor values with OscilloscopeRf application and send via radio connection. I loaded TOSBase application to another mote which is connected to PC. With SerialForwarder and Oscilloscope applications, I saw sensor values in Oscilloscope. After that I've decided to add a hop to this application. I've written an application that basicly get radio values from mote that runs OscilloscopeRf application and send this values via radio to the mote that runs TOSBase application. Network is like this: mote2(OscilloscopeRf) - mote4(rfm to rfm) - mote1(TOSBase) I changed OscilloscopeRf dataTask() like this: call DataMsg.send(/*TOS_BCAST_ADDR*/4, sizeof(struct OscopeMsg), msg[currentMsg]) I changed control in TOSBase RadioReceive.receive event if ((!Msg-crc) || (Msg-group != TOS_AM_GROUP)) return Msg; to if ((!Msg-crc) || (Msg-group != TOS_AM_GROUP) || ((Msg-addr != TOS_BCAST_ADDR) (Msg-addr != addr))) return Msg; for controlling destination id. In my hop application I used GenericComm component. and basicly did this: event TOS_MsgPtr Receive.receive(TOS_MsgPtr m) { TOS_Msg msg; memcpy(msg, m, sizeof(TOS_Msg)); call Send.send(1, sizeof(struct OscopeMsg),msg); call Leds.greenToggle(); return m; } After running all motes, Serial Forwarder is getting all packets, green led of the mote1 and mote4 toggles, in Oscilloscope I saw Mote2 Channel1 but values are wrong and like this: http://img72.imageshack.us/img72/9382/oscilloscopegi9.jpg I couldn't solve the problem, it can be a simple mistake, but like I said I'm new in TinyOS. Thanks for your interest... __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Simple About Hello world application, please help me out with this
Hi, I am doing a similar thing... but i am sending helloworld from one mote to another and from that mote, send it to PC via serial.. i am able to send helloworld from one mote to another but not the other part... so Rf is like typedef nx_struct BlinkToRadioMsg { uint8_ t num[7]; } BlinkToRadioMsg; uint8_t num1[] = Hello!; In TImer0.fired event, i write BlinkToRadioMsg* btrpkt = (BlinkToRadioMsg*)(call Packet.getPayload(pkt, NULL)); if (call Packet.maxPayloadLength() sizeof(BlinkToRadioMsg)) { return; } strcpy(btrpkt-num, num1); Remember to include string.h, this is implemented in tinyos-2.x and BlinkToRadio application... Also, if you know the other part, that is how to send helloworld from mote to PC, plz let me know. Anyone else who knows how will i decode the PAYLOAD received on BaseStationCC2240 , please tel me, I am able to get ascii equivalent hex numbers of Hello! on PC via serial interface but before that i need to convert back to ascii and need to send ascii to serial.. Any help is appreciated... Cheers! VJ Cheers VJ Chan kenniel wrote: Dear all, Could any one here help me out with telling me how to write a helloworld nesC program, then put it into TOS_Msg of the oscopeMsg program? Actually what I wanna implement is send the string data helloworld from a mote to PC, then in PC side use MIG to unpack the packet, and show the result helloworld. I know I can use SerialForwarder with OscopeMsg to display data on PC, but I don't know how to put the source data like helloworld into a packet to send, I have read the OscilloscopeM.nc file, but don't know how they put data into TOS_Msg variable, So could anyone help me with how to put source data into TOS_MSg please? Or if you I was wrong and you have any suggestion, all are extremely appreciate. Thanks very much. -- Best wishes, Kenneth Chan Wish you have a good day! ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Ubuntu TinyOS Existing AVR libs
Dear list members, This regards the recent Ubuntu package at the debian repository: deb http://tinyos.stanford.edu/tinyos/dists/ubuntu edgy main My current Ubuntu installation does already have binutils-avr, gcc-avr and avr-libc packages. (I already cross-compile for avr's and arm's microcontrollers.) This leads to problems in installing them, see *. What I can do is remove the references to the files in the binutils-avr, etc. packages (remove the lines in /var/lib/dpkg/info/binutils-avr.list). However, I don't know what will be put in those directories in that case. Is not possible to use other folders, if the files are different. And else, rely upon the default avr-libc, gcc-avr, binutils-avr, etc. packages? Kind regards, Anne Unpacking avr-binutils-tinyos (from .../avr-binutils-tinyos_2.15-4_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-binutils-tinyos_2.15-4_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-addr2line.1.gz', which is also in package binutils-avr dpkg-deb: subprocess paste killed by signal (Broken pipe) Unpacking avr-gcc-tinyos (from .../avr-gcc-tinyos_3.4.3-2_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-gcc.1.gz', which is also in package gcc-avr dpkg-deb: subprocess paste killed by signal (Broken pipe) Selecting previously deselected package avr-insight. Unpacking avr-insight (from .../avr-insight_6.3-2_i386.deb) ... Unpacking avr-libc-tinyos (from .../avr-libc-tinyos_1.2.3-2_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-libc-tinyos_1.2.3-2_i386.deb (--unpack): trying to overwrite `/usr/avr/include/avr/crc16.h', which is also in package avr-libc dpkg-deb: subprocess paste killed by signal (Broken pipe) Selecting previously deselected package msp430tools-base. Unpacking msp430tools-base (from .../msp430tools-base_0.1-20050608_i386.deb) ... Selecting previously deselected package msp430tools-binutils. Unpacking msp430tools-binutils (from .../msp430tools-binutils_2.17_i386.deb) ... Selecting previously deselected package msp430tools-gcc. Unpacking msp430tools-gcc (from .../msp430tools-gcc_3.2.3-20050608_i386.deb) ... Selecting previously deselected package msp430tools-gdb. Unpacking msp430tools-gdb (from .../msp430tools-gdb_6.0-20050610_i386.deb) ... Selecting previously deselected package msp430tools-jtag-lib. Unpacking msp430tools-jtag-lib (from .../msp430tools-jtag-lib_20031101cvs-20050611_i386.deb) ... Selecting previously deselected package msp430tools-libc. Unpacking msp430tools-libc (from .../msp430tools-libc_20050308cvs-20050609_i386.deb) ... Selecting previously deselected package msp430tools-python-tools. Unpacking msp430tools-python-tools (from .../msp430tools-python-tools_1.0-2_all.deb) ... Selecting previously deselected package nesc. Unpacking nesc (from .../nesc_1.2.8a-2_i386.deb) ... Selecting previously deselected package tinyos-tools. Unpacking tinyos-tools (from .../tinyos-tools_1.2.3-2_i386.deb) ... Selecting previously deselected package tinyos. Unpacking tinyos (from .../archives/tinyos_2.0-1_i386.deb) ... Selecting previously deselected package tinyos-avr. Unpacking tinyos-avr (from .../tinyos-avr_2.0-1_i386.deb) ... Selecting previously deselected package tinyos-msp430. Unpacking tinyos-msp430 (from .../tinyos-msp430_2.0-1_i386.deb) ... Unpacking gdb-avr (from .../gdb-avr_6.4-1_i386.deb) ... dpkg: error processing /var/cache/apt/archives/gdb-avr_6.4-1_i386.deb (--unpack): trying to overwrite `/usr/bin/avr-gdbtui', which is also in package avr-insight dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/avr-binutils-tinyos_2.15-4_i386.deb /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb /var/cache/apt/archives/avr-libc-tinyos_1.2.3-2_i386.deb /var/cache/apt/archives/gdb-avr_6.4-1_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1) ... Errors were encountered while processing: tinyos-avr ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] tinyos2 cc2420lpl locked-up node, SPI with DMA problem
I digged a bit in the dma implementation for spi and found a potential bug that makes the stack hanging when duty-cycling. It is related to the former problem where the spi bus was not properly released. A infinite loop can occur in the following scenario (using dma): 1. a dma transfer is initiated (either from cc2420receivep or cc2420transmitp) 2. in the middle of the transmission, the dutycycling mechanism turns off the chipcon radio. as the dma controller has not transfered alle bytes, it is still waiting for an usart interrupt 3. the radio is powered on again and the command for starting the oscillator is sent via spi. now, the dma controller sees the UTXIFG0 flag and copies the received byte to the destination memory of the pending dma transfer. because the flag is cleared after this operation, the spibyte.write command waits forever for a flag. as proposed earlier, this problem could be solved with a change in the start/stop procedure in transmitp/receivep (e.g. allowing to stop the radio only if no dma transfer is ongoing) another approach would be to introduce some kind of spipacket.cancel() command to clear the dma transmission when the chipcon radio is stopped. other suggestions? Roman Roman Lim wrote: Hi David I've got now a version of the stack that does not crash in my test application (at least i did not observed any crashes). With the attached changes of CC2420SpiImplP.nc, it worked fine, but only without dma support. I added some additional checks for the resource sharing. Before that, it could happen, that a the resource (provided by CC2420SpiImplP.nc,) could be released before the granted event could be signaled (when m_holder was already set, but SpiResource.granted has not signaled). Roman David Moss wrote: Roman - Just wanted to confirm I got your email. Your new observations are definitely valuable in solving this problem. On my end, I'm kind of swamped until the middle of next week. After that point, duplicating and resolving this issue will be one of the top todo's on my list. Thanks again, -David -Original Message- From: Roman Lim [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 11, 2007 1:18 AM To: David Moss Cc: 'Philip Levis'; 'Jonathan Hui'; [EMAIL PROTECTED] Subject: Re: [Tinyos-help] tinyos2 cc2420lpl locked-up node Hi David I tried out your fix. the problem still occurs, even if i decrease the lpl receive check interval (i used 300 ms). I made a few additional observations (maybe they could help fixing the problem): if i decrease the time the usart-resource is occupied by another component than the radio stack, the time until the first node freezes increases i added a test variable in cc2420controlp to find the exact line in the code, where the lockup uccurs. the code hangs when starting the cc2420 at this line (162): call IOCFG1.write( CC2420_SFDMUX_XOSC16M_STABLE CC2420_IOCFG1_CCAMUX ); just after the state variable has been set to S_XOSC_STARTING. Roman David Moss wrote: Roman, Thanks for sending us this code. Two things: 1. I independently had a problem with sending data from serial-radio and back quickly (packets were being lost constantly, everything was going very, very slow to the point of failure. I wasn't able to lock up any nodes though). An update to CC2420AckLplP to fixed the problem (attached - also on contribs). This CC2420 radio stack has been integrated into my deployment applications and tested with no issues so far. 2. I haven't had a chance to test this update to see if it affects your code. If the update doesn't work, how does decreasing the LPL receive check interval affect your nodes? 100 ms Rx checks might be pretty fast if you have a bunch of other things running, as well as accessing the UART. Each receive check lasts for approximately 1 to 5 ms and is completely atomic-blocked off in order to shut the radio off as fast as possible. Thanks again for finding and bringing this issue up. It's good to know what issues might be still open in the up and coming 2.0.1 release. -David -Original Message- From: Roman Lim [mailto:[EMAIL PROTECTED] Sent: Thursday, April 05, 2007 2:08 PM To: David Moss Cc: 'Philip Levis'; 'Jonathan Hui'; [EMAIL PROTECTED] Subject: Re: [Tinyos-help] tinyos2 cc2420lpl locked-up node I'm using current CVS and also david's new stack (as mentioned). I wrote a simple test programm (attached, dma-usage and lowpowerlistening was defined in the makefile) that reproduces this behaviour. In my testbed (consisting of 13 nodes), this code makes them hanging. Roman David Moss wrote: This does sound like a different issue than what we've seen before. What's the best method to try to duplicate it? Do you simply have a node idly duty cycling at 100 ms? Are there other transmitters nearby? Is the node that locks up trying to transmit? It's also surprising that the DMA version
Re: [Tinyos-help] Ubuntu TinyOS Existing AVR libs
I'd suggest changing the name of the tinyos-specific AVR toolchain packages. This will prevent the namespace collisions within the package manager. If the managers of the Stanford repository aren't interested in doing this, you can do it yourself. I don't remember the exact syntax off the top of my head, but it goes along the lines of: * extract the current package files with dpkg -x pkg.deb * extract the current package control info with dpkg -e pkg.deb * update DEBIAN/control * repack the deb using dpkg-deb -b tony Anne van Rossum wrote: Dear list members, This regards the recent Ubuntu package at the debian repository: deb http://tinyos.stanford.edu/tinyos/dists/ubuntu edgy main My current Ubuntu installation does already have binutils-avr, gcc-avr and avr-libc packages. (I already cross-compile for avr's and arm's microcontrollers.) This leads to problems in installing them, see *. What I can do is remove the references to the files in the binutils-avr, etc. packages (remove the lines in /var/lib/dpkg/info/binutils-avr.list). However, I don't know what will be put in those directories in that case. Is not possible to use other folders, if the files are different. And else, rely upon the default avr-libc, gcc-avr, binutils-avr, etc. packages? Kind regards, Anne Unpacking avr-binutils-tinyos (from .../avr-binutils-tinyos_2.15-4_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-binutils-tinyos_2.15-4_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-addr2line.1.gz', which is also in package binutils-avr dpkg-deb: subprocess paste killed by signal (Broken pipe) Unpacking avr-gcc-tinyos (from .../avr-gcc-tinyos_3.4.3-2_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-gcc.1.gz', which is also in package gcc-avr dpkg-deb: subprocess paste killed by signal (Broken pipe) Selecting previously deselected package avr-insight. Unpacking avr-insight (from .../avr-insight_6.3-2_i386.deb) ... Unpacking avr-libc-tinyos (from .../avr-libc-tinyos_1.2.3-2_i386.deb) ... dpkg: error processing /var/cache/apt/archives/avr-libc-tinyos_1.2.3-2_i386.deb (--unpack): trying to overwrite `/usr/avr/include/avr/crc16.h', which is also in package avr-libc dpkg-deb: subprocess paste killed by signal (Broken pipe) Selecting previously deselected package msp430tools-base. Unpacking msp430tools-base (from .../msp430tools-base_0.1-20050608_i386.deb) ... Selecting previously deselected package msp430tools-binutils. Unpacking msp430tools-binutils (from .../msp430tools-binutils_2.17_i386.deb) ... Selecting previously deselected package msp430tools-gcc. Unpacking msp430tools-gcc (from .../msp430tools-gcc_3.2.3-20050608_i386.deb) ... Selecting previously deselected package msp430tools-gdb. Unpacking msp430tools-gdb (from .../msp430tools-gdb_6.0-20050610_i386.deb) ... Selecting previously deselected package msp430tools-jtag-lib. Unpacking msp430tools-jtag-lib (from .../msp430tools-jtag-lib_20031101cvs-20050611_i386.deb) ... Selecting previously deselected package msp430tools-libc. Unpacking msp430tools-libc (from .../msp430tools-libc_20050308cvs-20050609_i386.deb) ... Selecting previously deselected package msp430tools-python-tools. Unpacking msp430tools-python-tools (from .../msp430tools-python-tools_1.0-2_all.deb) ... Selecting previously deselected package nesc. Unpacking nesc (from .../nesc_1.2.8a-2_i386.deb) ... Selecting previously deselected package tinyos-tools. Unpacking tinyos-tools (from .../tinyos-tools_1.2.3-2_i386.deb) ... Selecting previously deselected package tinyos. Unpacking tinyos (from .../archives/tinyos_2.0-1_i386.deb) ... Selecting previously deselected package tinyos-avr. Unpacking tinyos-avr (from .../tinyos-avr_2.0-1_i386.deb) ... Selecting previously deselected package tinyos-msp430. Unpacking tinyos-msp430 (from .../tinyos-msp430_2.0-1_i386.deb) ... Unpacking gdb-avr (from .../gdb-avr_6.4-1_i386.deb) ... dpkg: error processing /var/cache/apt/archives/gdb-avr_6.4-1_i386.deb (--unpack): trying to overwrite `/usr/bin/avr-gdbtui', which is also in package avr-insight dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/avr-binutils-tinyos_2.15-4_i386.deb /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb /var/cache/apt/archives/avr-libc-tinyos_1.2.3-2_i386.deb /var/cache/apt/archives/gdb-avr_6.4-1_i386.deb E: Sub-process /usr/bin/dpkg returned an error code (1) ... Errors were encountered while processing: tinyos-avr ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] RE:sending command to mica2 to start a counter.
Deepti, You should take a look at SimpleCmd application which is making use of this component to process the commands received. About how to wire the components you just need to add a command processing capability to the RfmToCount application that you can get to know using SimpleCmd application. Please let me know if this helps. -Nikhil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Ubuntu TinyOS Existing AVR libs
On Apr 13, 2007, at 8:52 AM, Tony Mancill wrote: I'd suggest changing the name of the tinyos-specific AVR toolchain packages. This will prevent the namespace collisions within the package manager. If the managers of the Stanford repository aren't interested in doing this, you can do it yourself. I don't remember the exact syntax off the top of my head, but it goes along the lines of: * extract the current package files with dpkg -x pkg.deb * extract the current package control info with dpkg -e pkg.deb * update DEBIAN/control * repack the deb using dpkg-deb -b I'll ask Leith (who maintains the repository). The core WG is generally pretty resistant to just tracking the most recent avr-gcc and msp430-gcc releases, as each one has its own bugs and problems. For example, the most recent avr-gcc handles inlining very differently than the one TinyOS uses, such that you have factors of three differences in binary sizes. There has been some talk about updating to a newer version, but my sense is that the push for this will be supporting new microcontrollers. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Pool and Queue in TinyOS
On Apr 12, 2007, at 7:25 PM, Mehedi Bakht wrote: Hi, I am a bit confused about why and how the interface Pool should be used when using the interface Queue (TinyOS 2.x). Any comment/ explanation will be really appreciated. The two are completely separate. It just happens to be that some use cases require that you use both of them. A Queue gives you a fixed-length queue of type t. For example, a transmission queue is a Queuemessage_t*, that is, a queue of pointers to message buffers. You would instantiate it an 8-deep send queue as a QueueC(message_t*, 8). A Pool is a fixed-size memory pool of type t. For example, a pool of message buffers is a Poolmessage_t, and you instantiate it with PoolC(message_t, 8). It happens to be that packet forwarding layers need both of them: when you receive a packet, you need to allocate one to give back to the radio layer, and you also need to put the received packet into the send queue. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Pool and Queue in TinyOS
What happens if I declare a Queue of messages instead of a Queue of message pointers ? I am trying to find out the potential problems of declaring QueueC(message_t, 8) instead of QueueC(message_t*, 8). Then, when I get a packet from the lower layer, I instantiate a new message_t variable, copy the contents of the received message there, queue it and return the buffer to radio Layer. event message_t* Receive.receive(message_t* bufPtr, void* payload, uint8_t len) { message_t tempMsg; memcpy(tempMsg,bufPtr,sizeof(message_t); SendQueue.enqueue(tempMsg); return bufPtr; } On 4/13/07, Philip Levis [EMAIL PROTECTED] wrote: On Apr 12, 2007, at 7:25 PM, Mehedi Bakht wrote: Hi, I am a bit confused about why and how the interface Pool should be used when using the interface Queue (TinyOS 2.x). Any comment/ explanation will be really appreciated. The two are completely separate. It just happens to be that some use cases require that you use both of them. A Queue gives you a fixed-length queue of type t. For example, a transmission queue is a Queuemessage_t*, that is, a queue of pointers to message buffers. You would instantiate it an 8-deep send queue as a QueueC(message_t*, 8). A Pool is a fixed-size memory pool of type t. For example, a pool of message buffers is a Poolmessage_t, and you instantiate it with PoolC(message_t, 8). It happens to be that packet forwarding layers need both of them: when you receive a packet, you need to allocate one to give back to the radio layer, and you also need to put the received packet into the send queue. Phil -- Mehedi Bakht Graduate Student Department of Computer Science University of Illinois at Urbana-Champaign ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Pool and Queue in TinyOS
On Apr 13, 2007, at 10:45 AM, Mehedi Bakht wrote: What happens if I declare a Queue of messages instead of a Queue of message pointers ? I am trying to find out the potential problems of declaring QueueC (message_t, 8) instead of QueueC(message_t*, 8). Then, when I get a packet from the lower layer, I instantiate a new message_t variable, copy the contents of the received message there, queue it and return the buffer to radio Layer. event message_t* Receive.receive(message_t* bufPtr, void* payload, uint8_t len) { message_t tempMsg; memcpy(tempMsg,bufPtr,sizeof(message_t); SendQueue.enqueue(tempMsg); return bufPtr; } Then you are passing the structure by value. This will cause there to be up to six copies: 1. From pointer to stack: memcpy(tempMsg,bufPtr,sizeof(message_t); 2. From stack to stack (making tempMsg a by-value parameter to enqueue); 3. From stack to data (assigning the parameter of enqueue to an element of the queue) dequeueing: 4. From data to stack (assigning element of the queue to the local stack variable in dequeue) 5. From stack to stack (copying the local stack variable to the return value) 6. From stack to data (copying the return value to a pointer you can do something with). Furthermore, passing large structures on the stack is notoriously inefficient in C. That's why you rarely see it done. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Mote IDs
Thanks for the help it worked, one question though: With the id's now implemented I am unware if a packet has been recieved (which I guess is the case :-D). BUT i'd still like for the motes to forward packets, even if its not for them. How can I accomplish this? Thanks -- Regards, Hamdi Quoting Michael Schippling [EMAIL PROTECTED]: This works in T1 using GenericComm with mica{2,z}, i.e. the user level receive will only get messages addressed to Bcast or the specific moteID. There was some discussion on the list recently about moteIDs not being filtered on other platforms/versions/etal. I don't remember the details, but a search might help if you are having trouble. MS Muhammad Azhar wrote: Hi, I'm not too sure about the lower level stuff, but if you program Mote X to send messages to Mote 4, only Mote 4 would receive the message, provided they have the same AM type (refer to online tutorial). As far I know, you don't have to add anything else to the code. Hope this helps. From: /Hamdi Roumani [EMAIL PROTECTED]/ To: /[EMAIL PROTECTED]/ Subject: /[Tinyos-help] Mote IDs/ Date: /Tue, 10 Apr 2007 14:36:35 -0400 (EDT)/ // Hello, I'd like to send a packet to a particular mote - if I program a mote with an ID of say 4. And then when sending the packet use the address 4 will all other motes automatically ignore this packet (in other words does this occur at a low level layer) or does something need to be done so that all other motes except #4 will ignore it. Thanks ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help This message was sent using IMP, the Internet Messaging Program. ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Ubuntu TinyOS Existing AVR libs
the package names already differentiate them from the other releases. unfortunately, the files themselves are located on the same path... -- processing /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-gcc.1.gz', which is also in package gcc-avr -- to avoid this, i would have to move the folders around, and update any references to them. i don't mind doing this, but is this out of the scope of package maintenance, and wouldn't this break other things in the process? any thoughts? -leith Philip Levis wrote: On Apr 13, 2007, at 8:52 AM, Tony Mancill wrote: I'd suggest changing the name of the tinyos-specific AVR toolchain packages. This will prevent the namespace collisions within the package manager. If the managers of the Stanford repository aren't interested in doing this, you can do it yourself. I don't remember the exact syntax off the top of my head, but it goes along the lines of: * extract the current package files with dpkg -x pkg.deb * extract the current package control info with dpkg -e pkg.deb * update DEBIAN/control * repack the deb using dpkg-deb -b I'll ask Leith (who maintains the repository). The core WG is generally pretty resistant to just tracking the most recent avr-gcc and msp430-gcc releases, as each one has its own bugs and problems. For example, the most recent avr-gcc handles inlining very differently than the one TinyOS uses, such that you have factors of three differences in binary sizes. There has been some talk about updating to a newer version, but my sense is that the push for this will be supporting new microcontrollers. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Finding MoteID onbard
Hello, After programming a mote with a particular id using make mica2 install,24 Is there anyway access to this number i.e. 24 can be accesed onboard the mote? Thanks -- Regards, Hamdi This message was sent using IMP, the Internet Messaging Program. ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Ubuntu TinyOS Existing AVR libs
Whoops - my apologies - I misunderstood the initial email. FWIW, a few thoughts... I gave this matter some thought when I first installed TinyOS and at the time was thinking that a chroot environment might be best in terms of long-term stability and preventing conflicts. However, there is some setup of the chroot itself that could become fairly involved. You'd probably want to bind mount /opt inside the chroot so it looked the same both inside and outside. (And if you're going to that much trouble, it might be easier for users to create a VMware appliance like the one the SOS team produced.) Regarding whether or not it's in the scope of package maintenance, I'd agree that it's not really a good idea to be moving stuff around. If nothing else, you'll end up with differences between the instructions for RPM/cygwin users and the Debian/Ubuntu camp, which seems generally like a bad idea. However, you could use Conflicts: to prevent folks from even trying to install packages that contain file-level conflicts with other packages in the distribution. Beyond that, I'll have to think about it some more. tony leith wrote: the package names already differentiate them from the other releases. unfortunately, the files themselves are located on the same path... -- processing /var/cache/apt/archives/avr-gcc-tinyos_3.4.3-2_i386.deb (--unpack): trying to overwrite `/usr/share/man/man1/avr-gcc.1.gz', which is also in package gcc-avr -- to avoid this, i would have to move the folders around, and update any references to them. i don't mind doing this, but is this out of the scope of package maintenance, and wouldn't this break other things in the process? any thoughts? -leith Philip Levis wrote: On Apr 13, 2007, at 8:52 AM, Tony Mancill wrote: I'd suggest changing the name of the tinyos-specific AVR toolchain packages. This will prevent the namespace collisions within the package manager. If the managers of the Stanford repository aren't interested in doing this, you can do it yourself. I don't remember the exact syntax off the top of my head, but it goes along the lines of: * extract the current package files with dpkg -x pkg.deb * extract the current package control info with dpkg -e pkg.deb * update DEBIAN/control * repack the deb using dpkg-deb -b I'll ask Leith (who maintains the repository). The core WG is generally pretty resistant to just tracking the most recent avr-gcc and msp430-gcc releases, as each one has its own bugs and problems. For example, the most recent avr-gcc handles inlining very differently than the one TinyOS uses, such that you have factors of three differences in binary sizes. There has been some talk about updating to a newer version, but my sense is that the push for this will be supporting new microcontrollers. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Ubuntu TinyOS Existing AVR libs
On Apr 13, 2007, at 11:47 AM, Tony Mancill wrote: Whoops - my apologies - I misunderstood the initial email. FWIW, a few thoughts... I gave this matter some thought when I first installed TinyOS and at the time was thinking that a chroot environment might be best in terms of long-term stability and preventing conflicts. However, there is some setup of the chroot itself that could become fairly involved. You'd probably want to bind mount /opt inside the chroot so it looked the same both inside and outside. (And if you're going to that much trouble, it might be easier for users to create a VMware appliance like the one the SOS team produced.) There's work to do exactly this, with the hope of releasing it at the TTX, where we can hand out live CDs. Phil ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: Fw: [Tinyos-help] sending command to mica2 to start a counter.
Yes it is entirely possible, but you'll probably need a little glue code to connect the command reception to the counter module. Read through the doc/tutorial to get a feel for building TOS programs. MS Dipti wrote: - Original Message - *From:* Dipti mailto:[EMAIL PROTECTED] *To:* tinyos forum mailto:[EMAIL PROTECTED] *Sent:* 2007 Apr 12 1:59 PM *Subject:* [Tinyos-help] sending command to mica2 to start a counter. Hi all, I have to implement an application wherin when i send a command to mica2 motes from the base mote it should start a 3 bit counter. What modifications need to be done to the SimpleCmd configuration. Is it possible to wire the Counter configuration and the IntToLeds configuration along with SimpleCmd configuration in order to achieve the same. Kindly help, Regards, Dipti Jaiswal ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Generating 40 kHz from MSP using TinyOS
I'd say you are on the right track in modifying the pre-scale clock freq, but there may be some other module using that timer. You might check through the code and see if that's the case. I've noticed that the TOS documentation is rather characteristically silent on what internal controller features are used to what purposes... I implemented this recently on the mica's but unfortuantely I only know the ATMEGA controller so I can't help with the details. If it's any help my code is at: http://www.etantdonnes.com/Motes/AVR128timers.zip MS Firat TARAKTAS wrote: Hi to all, I want to generate 40 kHz from MSP430F1611 with TinyOS 1.15. I am using compare mode of TimerA2. I set TA2 as compare mode, set an event with CompareA2.setEventFromNow(1000) command and when it is fired CompareA2.setEventFromPrev(1000) is called. I observed 1 kHz signal at the output. Like that when i set the event with 100, i observed 10 kHz signal. According to these results, i expect that approximately 40 kHz signal at output when event is set form now and previous with parameter 12 (25/2). But it is not achieved. With 5 parameter, 33kHz is achieved, but higher frequencies are not. Then after a little survey, I concluded that tos\tos\platform\msp430\MSP430ClockM.nc module file is executed while device booting. In command void MSP430ClockInit.defaultInitClocks(), I set the divisor of SCLK to 1 with BCSCTL2 = 0, in order to increase the clock frequency. But again 1 kHz signal is seen with parameter 1000 while 4kHz is expected.Trials with other parameters do not work. I will be glad, if you lead me to solve this problem. Firat TARAKTAS http://www.genetlab.com/__ ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Simple About Hello world application, please help me out with this
Is someone handing out HelloWhirled class assignments? Search back on this list for a couple previous threads. You've got all the right pieces in mostly the right order. Mostly what you need to do is modify OscopeMsg.h to take a string instead of ints, and then look at where the data[] portion of the TOS_Msg is set in the program. The best approach is to read through the doc/tutorial and try a few of the exercises to get the TOS program paradigm. MS Chan kenniel wrote: Dear all, Could any one here help me out with telling me how to write a helloworld nesC program, then put it into TOS_Msg of the oscopeMsg program? Actually what I wanna implement is send the string data helloworld from a mote to PC, then in PC side use MIG to unpack the packet, and show the result helloworld. I know I can use SerialForwarder with OscopeMsg to display data on PC, but I don't know how to put the source data like helloworld into a packet to send, I have read the OscilloscopeM.nc file, but don't know how they put data into TOS_Msg variable, So could anyone help me with how to put source data into TOS_MSg please? Or if you I was wrong and you have any suggestion, all are extremely appreciate. Thanks very much. -- Best wishes, Kenneth Chan Wish you have a good day! ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] OscilloscopeRf and TOSBase application with multihop
Most likely what is happening is that you are trashing your message data in the hop mote because you return the buffer in receive() while send() is still trying to use it. You should copy the message and post send() as a task -- both good pieces of general advice. You'll eventually want to make some kind of hop queue instead of just passing things along directly as well... Also I don't think you need to modify TOSBase at all, although you may need to put some discrimination of messages into the host program if the base station can receive both the original and hopped messages. MS mehmet kaplan wrote: Hi everyone, This is my first e-mail:) I'm starter in developing TinyOS applications. I've tried a sense application in TinyOS 1.15. I'm getting sensor values with OscilloscopeRf application and send via radio connection. I loaded TOSBase application to another mote which is connected to PC. With SerialForwarder and Oscilloscope applications, I saw sensor values in Oscilloscope. After that I've decided to add a hop to this application. I've written an application that basicly get radio values from mote that runs OscilloscopeRf application and send this values via radio to the mote that runs TOSBase application. Network is like this: mote2(OscilloscopeRf) - mote4(rfm to rfm) - mote1(TOSBase) I changed OscilloscopeRf dataTask() like this: /call DataMsg.send(/*TOS_BCAST_ADDR*/4, sizeof(struct OscopeMsg), msg[currentMsg])/ I changed control in TOSBase RadioReceive.receive event /if ((!Msg-crc) || (Msg-group != TOS_AM_GROUP)) return Msg;/ to /if ((!Msg-crc) || (Msg-group != TOS_AM_GROUP) || ((Msg-addr != TOS_BCAST_ADDR) (Msg-addr != addr))) return Msg;/ for controlling destination id. In my hop application I used GenericComm component. and basicly did this: /event TOS_MsgPtr Receive.receive(TOS_MsgPtr m) { TOS_Msg msg; memcpy(msg, m, sizeof(TOS_Msg)); call Send.send(1, sizeof(struct OscopeMsg),msg); call Leds.greenToggle(); return m;/ / }/ After running all motes, Serial Forwarder is getting all packets, green led of the mote1 and mote4 toggles, in Oscilloscope I saw Mote2 Channel1 but values are wrong and like this: http://img72.imageshack.us/img72/9382/oscilloscopegi9.jpg I couldn't solve the problem, it can be a simple mistake, but like I said I'm new in TinyOS. Thanks for your interest... Ahhh...imagining that irresistible new car smell? Check out new cars at Yahoo! Autos. http://us.rd.yahoo.com/evt=48245/*http://autos.yahoo.com/new_cars.html;_ylc=X3oDMTE1YW1jcXJ2BF9TAzk3MTA3MDc2BHNlYwNtYWlsdGFncwRzbGsDbmV3LWNhcnM- ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Finding MoteID onbard
TOS_LOCAL_ADDRESS Hamdi Roumani wrote: Hello, After programming a mote with a particular id using make mica2 install,24 Is there anyway access to this number i.e. 24 can be accesed onboard the mote? Thanks --Regards, Hamdi This message was sent using IMP, the Internet Messaging Program. ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Simple About Hello world application, please help me out with this
I think you can use Java: new String( byte[] ) where byte[] is the relevant data from your packet. I always have to go over and over the Java types when it comes to converting from one to another, so I may have forgotten a couple of necessary hoops. MS Spidernet Lists wrote: Hi, I am doing a similar thing... but i am sending helloworld from one mote to another and from that mote, send it to PC via serial.. i am able to send helloworld from one mote to another but not the other part... so Rf is like typedef nx_struct BlinkToRadioMsg { uint8_ t num[7]; } BlinkToRadioMsg; uint8_t num1[] = Hello!; In TImer0.fired event, i write BlinkToRadioMsg* btrpkt = (BlinkToRadioMsg*)(call Packet.getPayload(pkt, NULL)); if (call Packet.maxPayloadLength() sizeof(BlinkToRadioMsg)) { return; } strcpy(btrpkt-num, num1); Remember to include string.h, this is implemented in tinyos-2.x and BlinkToRadio application... Also, if you know the other part, that is how to send helloworld from mote to PC, plz let me know. Anyone else who knows how will i decode the PAYLOAD received on BaseStationCC2240 , please tel me, I am able to get ascii equivalent hex numbers of Hello! on PC via serial interface but before that i need to convert back to ascii and need to send ascii to serial.. Any help is appreciated... Cheers! VJ Cheers VJ Chan kenniel wrote: Dear all, Could any one here help me out with telling me how to write a helloworld nesC program, then put it into TOS_Msg of the oscopeMsg program? Actually what I wanna implement is send the string data helloworld from a mote to PC, then in PC side use MIG to unpack the packet, and show the result helloworld. I know I can use SerialForwarder with OscopeMsg to display data on PC, but I don't know how to put the source data like helloworld into a packet to send, I have read the OscilloscopeM.nc file, but don't know how they put data into TOS_Msg variable, So could anyone help me with how to put source data into TOS_MSg please? Or if you I was wrong and you have any suggestion, all are extremely appreciate. Thanks very much. -- Best wishes, Kenneth Chan Wish you have a good day! ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] compiling for micaz
Hi all, I installed tinyos 1.1.15, but I cant compile for micaz, even if I have the micaz directory under /platform. Can someone send me a makerules file for that? thank you ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] compiling for micaz
If you actually installed the whole .15 package you should have the right files...perhaps you have a MAKERULES env var or something that is amiss? Otherwise you can go to CVS and get what you need: http://sourceforge.net/cvs/?group_id=28656 http://tinyos.cvs.sourceforge.net/tinyos/tinyos-1.x/ MS roberto pagliari wrote: Hi all, I installed tinyos 1.1.15, but I cant compile for micaz, even if I have the micaz directory under /platform. Can someone send me a makerules file for that? thank you ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] sending command to mica2 to start a counter.
I did a similar think several weeks ago. I think you can achieve this way. 1: Add a data type in the command message that represents Start Leds 2: Modify the Java program of sending Command 3: Modify SimpleCmd that can handle this command. Hope it helps. Hui Kang On 4/12/2007, Dipti [EMAIL PROTECTED] wrote: Hi all, I have to implement an application wherin when i send a command to mica2 motes from the base mote it should start a 3 bit counter. What modifications need to be done to the SimpleCmd configuration. Is it possible to wire the Counter configuration and the IntToLeds configuration along with SimpleCmd configuration in order to achieve the same. Kindly help, Regards, Dipti Jaiswal) ___ Tinyos-help mailing list [EMAIL PROTECTED] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help