[Tinyos-help] about Surgetelos
Hi everyone, I am using telosb with Surgetelos programming on it, and it works properly. I notice that it uses MultiHopLQI route module, and I want to know the difference between MultiHopLQI and MintRoute,so I changed the route module wiring in Surge.nc as WMEWMAMultiHopRouter as multihopM then it doesn't work well, I can't receive the the other motes' data except the base mote(id 0).Could anyone tell me why this happened? I am confused for quite a long time. Thank you! ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] about Surgetelos
Hi everyone, I am using telosb with Surgetelos programming on it, and it works properly. I notice that it uses MultiHopLQI route module, and I want to know the difference between MultiHopLQI and MintRoute,so I changed the route module wiring in Surge.nc as WMEWMAMultiHopRouter as multihopM then it doesn't work well, I can't receive the the other motes' data except the base mote(id 0).Could anyone tell me why this happened? I am confused for quite a long time. Thank you! ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] error using UartStream......
Hi, Thanks for your reply. I am sorry if I missed telling that I am using motes similar to Micaz in Tinyos-2.0.2 and Cygwin. The UART used here for Atmega128 is UART1. It is not used for Flash or Radio but is used only for serial communication. I am currently able to correctly do communication with the PC where as I want to attach a 7-segment LED screen to the serial port instead of a PC. I read the complete hardware specifications of both my motes and the serial cable attached to the LED screen. What the LED screen is EXPECTING is data on a single pin (RXD on led screenside) which should be connected to the TXD1 of the Atmel processor. Now my atmel atmega128 is connected to a RS-232 driver chip which is expecting RTS, CTS, TXD1 and RXD1, so my first question is if I use UartStream.send , will it just send the data to the TXD1 pin or do we need to send the complete control signals as my LED board is not expecting the control signals??? I went on to look the PlatformSerialC for my platform, it connects to Atm128Uart correctly and HplAtm128UartP,, so that should not be a problem. The next thing is that the my LED screen is expecting commands like as follows: [uid] ['a'/'b'...] [digit 1] [digit 2] [digit 3] [digit 4] Where: the uid preprogrammed is 255,so to send the equivalent ascii is a space, 'a' means turn on all the 4 LED's and digit1 is say '1',etc etc. So, what I am trying to do is something like this: Event void some_event() { call SendUartStream.send( a1234,6); } async event void SendUartStream.sendDone(uint8_t* buffered, uint16_t len, error_t ok) { if (ok == SUCCESS) { call Leds.led0Toggle(); } } async event void SendUartStream.receivedByte(uint8_t byte) { char string[] = a1234; call SendUartStream.send(string,6); call SendUartStream.disableReceiveInterrupt(); } async event void SendUartStream.receiveDone(uint8_t *buf, uint16_t len, error_t error) { call SendUartStream.send(buffer,6); } NOW I HAVE been able to get over with the errors sent earlier by declaring the receivedByte and receiveDone events (though, I do not still understand why we need to do this when we do not want to receive any byte, all I want is to just send the bytes to the UART), but the error is fixed, so I am trying to first get the LED screen working, but its not working. AM I using the UartStream.send incorrectly or am I missing something??? IS THERE something more that is needed to be done for using the UartStream?? Guillermo: I tried searching for the code you mention but could not find, I am not using Msp430 controller so, I do not have to request a resource, the resource is always mine. I hope I was able to explain my issue, please let me know if you people need more info for helping me out here.. Cheers, Varun Jain From: Guillermo De Cesco [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 30, 2008 10:47 PM To: tinyos-help@millennium.berkeley.edu Cc: Varun Jain Subject: [Tinyos-help] error using UartStream.. Hi all, For all the ones that wants to use uart communication in tmote, some things have to be taken in consideration: -What uart do you want to use, UART1 is the uart associated with USB communication so this isn't the one you want to use probably. UART0 is the one exported in the expansion pin connector, but is also shared as a SPI bus with stm25p flash and cc2420 radio chips. -What type of communication you intend to establish, i.e just send bytes to uart, just receive, receive in response to a sent command, or send and receive in a full duplex manner were the receive is not correlated to the send event. Taken this things into account one cant do the following: -In the case that you use UART1 there is no problem at all, I mean you remove the usb or what ever but you have access to the uart, there is no conflict chip intervening in this uart. For the case you use UART0, the most common case: -For just sending: - you have to request the resource - when granted the resource send your bytes. - when send done release the resource. -For just receive or send and receive asynchronously do the same: - request the resource at boot - own the resource for ever. YOU WON'T BE ABLE TO USE FLASH NOR RADIO -For receive that is correlated in time with the send: - request the resource. - when granted the resource send your bytes. - when send done done nothing. - wait until the receive is done. - then release resource. In this last configuration you would be able to use flash and radio. For Varun: In your case you have some compile errors in using the interface because you don't wire all the events the interface provides. I almost sure
Re: [Tinyos-help] Doing Re-transmissions
On Thu, Jul 31, 2008 at 12:59 PM, ram kishore [EMAIL PROTECTED] wrote: Hi, Can I know what is the amount of random time backed-off to avoid collisions? Can any interface tell me that? Regards, Kishore On Thu, Jul 31, 2008 at 1:03 AM, Michael Schippling [EMAIL PROTECTED] wrote: I don't know an exact message delay figure. There's some software overhead, and then the MAC protocol which may backoff a random time to avoid collisions. There's also some indication that there should be a few milli-sec delay before retrying a message -- see recent posts and my message reliability reports -- but that might be receiver related. MS ram kishore wrote: Hi, The robocode you sent gave a deep insight.Thanks Micheal. One question;How long(in micro seconds) will the mote wait before doing retransmission? This should be protocol specific. Regards, Kishore On Wed, Jul 30, 2008 at 10:29 PM, Michael Schippling [EMAIL PROTECTED] wrote: Lets keep this on the help list As for loop 1, if you enable ACKs in the protocol they are handled in the lower levels and sendDone() is not called until the message is ACKed or times out. Search this list for many ACK explanations, and references to my robocode that makes extensive use of ACKs. As for message copy. You need a message buffer that lasts at least until all the sends are Done. If you can keep track of the buffer from the original message then you can just re-use it, otherwise you should copy it before trying to send again because the send operation will last longer than the scope of the function call, task or not... MS ram kishore wrote: Hi, I put loop 1 because I want a message (ACK) to be received after a message is sent.Thats why I switched to Receiving mode. Secondly,putting the re-transmit into separate task and post it form done() would require the message to be copied again, which is memory inefficient. Regards, Kishore On Tue, Jul 29, 2008 at 11:28 PM, Michael Schippling [EMAIL PROTECTED] wrote: beats me...why are you doing loop 1? by the time you get to done() transmission should be complete. Also I would put the re-transmit into a separate task and post it from done()... MS ram kishore wrote: Hi, I did the following: event result_t RsendMsg.sendDone(TOS_MsgPtr msg, result_t success) { result_t txmode,sndmsg; TOSH_uwait(1000); do{ /*LOOP 1*/ txmode = call CC1000Control.RxMode(); }while(!txmode); if ( txmode == SUCCESS ) call CLeds.yellowOff(); do{ /* LOOP2*/ sndmsg = call RsendMsg.send(TOS_BCAST_ADDR,12,msg); }while(!sndmsg); if ( sndmsg == SUCCESS ) call CLeds.yellowOn(); return SUCCESS; } If I remove LOOP 1, then retransmissions occur.But, when LOOP 1 is included no retransmissions occur. What could be the reason.? Regards, Kishore On Mon, Jul 28, 2008 at 11:44 PM, Michael Schippling [EMAIL PROTECTED] wrote: Just some things to try... I'd bet that the message buffer gets reused or erased before your second send can complete. You may also have trouble calling the send directly from the done, since done is in an event context which is sometimes tantamount to an interrupt, perhaps try copying the message and posting a task to resend? Another possibility is that you are walking over the normal send process. You should check the result of the second send to see if it's giving you an error. And you may need to put in some condition variable to block simultaneous sends. All that said, TOSBase seems to be a bit of a hack-to-get-things-to-work so it might not be easy to modify MS ram kishore wrote: Hi all, I am using TOS1.1.10 .In the standard receiver application TOSBase. I am trying to retransmit the message.I sent a message by calling call RadioSend.send(gpTxMsg);. For this RadioSend.sendDone(TOS_MsgPtr Msg, result_t success) event is generated. Hoping that Msg is a pointer to the already transmitted message,I call call RadioSend.send(Msg); to retransmit the same message again. But the message is not being re-transmitted . Can somebody tell me what is wrong or how to accomplish retransmission? Regards, Kishore ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Power Tossim for TinyOS 2_0_2
Hi all, Is there any working power tossim implementation for the TinyOS 2_0_2 version ? Thanks Nahr Elk ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] How to measure the ambient noise using TinyOS 2.x?
Hi you can use rssisample application. I have MicaZ motes using TinyOS 2.x. How can I measure the ambient noise level? Thanks. _ Envoyez avec Yahoo! Mail. Une boite mail plus intelligente http://mail.yahoo.fr___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Help : segmentation fault problem !!!
hi, i tried to execute my program in tinyos1.x under Tossim and i get a segmentation fault(core dumped) message, which stop the execution (before the end of simulation period) i add that i had two warnings while compiling my application : here is what i got : *$ make pc mkdir -p build/pc compiling DDTest to a pc binary ncc -o build/pc/main.exe -g -O0 -pthread -fnesc-nido-tosnodes=1000 -fnesc-simulate -Wall -Wshadow -DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=pc -fnesc-cfile=build/pc/app.c -board=micasb -DENABLE_GRADIENT_OVERRIDE -I. -I../../tos/interfaces -I../../tos/system -I../../tos/lib -I../../tos/platform/pc -DIDENT_PROGRAM_NAME=\DDTest\ -DIDENT_USER_ID=\benhamida\ -DIDENT_HOSTNAME=\XubunTOS-2\ -DIDENT_USER_HASH=0x69fe3900L -DIDENT_UNIX_TIME=0x48916f16L -DIDENT_UID_HASH=0x9df5d5cdL DDTest.nc -lm /opt/tinyos-1.x/tos/platform/pc/external_comm.c: In function 'acceptConnection': /opt/tinyos-1.x/tos/platform/pc/external_comm.c:158: warning: pointer targets in passing argument 3 of 'accept' differ in signedness /opt/tinyos-1.x/tos/platform/pc/PowerStateM.nc: In function '__nesc_nido_initialise': /opt/tinyos-1.x/tos/platform/pc/PowerStateM.nc:1066: warning: passing argument 1 of 'memset' discards qualifiers from pointer target type compiled DDTest to build/pc/main.exe $ export DBG=usr1,usr3,error $ ./build/pc/main.exe -t=90 -b=0 -r=lossy -rf=./topologies/grid3x3 9 stat.txt *Segmentation fault (core dumped) * have any one already experienced this issue ? your fast suggestions are kindly appreciated best regards ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Uart and CC2420 module conflict on telos Platform?
Hi Bill, I saw your reply about UartStream error in the TinyOS mailing list. Impressive! Actually I also encountered the same Uart1 problem in my project. I am now using telos platform, which is BSN development kit from Imperial College London. This platform has SPI/Uart0 interface and Uart1. Our group is now using this BSN Development Kit to develop our own prototype, which use another platform Platform1 to connect to BSN through Uart1 interface, we build our own CC2420 stack on Platform1 and try to communicate with another BSN node trough CC2420, like the following graph. Telos(BSN) |-| | |---| SPI |---|| Uart |--| | | RF | --- | MSP430 |-|--|Platfrom1 | ||---| BSN Node|---|| | -| |-| One thing I may mention is that, I plug the BSN into PC to utilize the USB power supply, but when I use battery , the UART1 could not work at all. I still don't know why. Caus we don't have standalone CC2420 module. What telos platform do is to function as Uart-SPI gateway in that we want to utilize the CC2420 module without using CC2420 stack on Telos . On it, we use TinyOS 2.x to program the node, when operating the RF module, we use purely Usart interface to read or write CC2420, like the following interfaces: call Usart.clrTxIntr(); call Usart.tx( ch ); call InterruptFIFOP.clear(); When we try to operate CC2420 on BSN and meanwhile transmit data through Uart, then few problems happen. 1. After SRXON command strobe is sent to CC2420, we continue to try to send data through Uart1, it turn that the data could not be received correctly at BSN side. But before that command, the Uart1 works quit well. 2. The same problem would happen after I send STXON command strobe. 3. Since we only trace to the STXON step, we could not guarantee there's no problem for other command strobes, if so, can you point them out? Have you ever encountered this kind of problem? Or do you have any idea about these? Besides, Is there any efficient method to debug BSN development kit, or telos platform? Do we need to buy other ICE tools if we want to debug BSN? Best Wishes, Yidong, Neil ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Own generic Receiver for cluster routing
Hi * I programm a cluster routing protocol for TinyOS2 and have following problem. I use AMPackage and will send and receive all AM types but only in one cluster. I've made own header I store at the begin of payload. So i provide own ClusterPacket and Packet to get the real payload and my header... I defined a cluster_id_t (uint8_t) and will provide Sender[am_id_t amId] and Receiver[am_id_t amId] but for different clusters. So I'made a gengeric module and configuration as follow : (This is only for Receive) ClusterReceiverP.nc generic module ClusterReceiverP(cluster_id_t cId) { provides interface Receive[am_id_t amId]; uses{ interface Receive as SubReceive[am_id_t amId]; interface Packet; interface ClusterPacket; } } implementation { //-- /* Receive commands / command void* Receive.getPayload[am_id_t id](message_t *msg, uint8_t *len){ return call Packet.getPayload(msg,len); } command uint8_t Receive.payloadLength[am_id_t id](message_t *msg){ return call Packet.payloadLength(msg); } event message_t* SubReceive.receive[am_id_t amId]( message_t* msg, void* payload, uint8_t len){ if (call ClusterPacket.cluster(msg) == cId){ signal Receive.receive[amId](msg,payload,len); } return msg; } default event message_t* Receive.receive[am_id_t amId]( message_t* msg, void* payload, uint8_t len){ return msg; } //-- } ** AND ClusterReceiverC.nc #include AM.h #include SCluster.h generic configuration ClusterReceiverC(cluster_id_t cId) { provides { interface Receive[am_id_t amId]; interface Packet; interface ClusterPacket; } } implementation { components new ClusterReceiverP(cId) as ClusterReceiverP; components ClusterSenderC, ActiveMessageC; ClusterReceiverP.SubReceive - ActiveMessageC.Receive; ClusterReceiverP.ClusterPacket - ClusterSenderC; ClusterReceiverP.Packet - ClusterSenderC; Receive = ClusterReceiverP; Packet = ClusterSenderC; ClusterPacket = ClusterSenderC; } *** I use two instances of Receiver in higher layer and I get fan out warning. warning: calls to Receive.receive in CC2420ActiveMessageP fan out, but there is no combine function specified for the return type. I think becouse of my Receiver is not UNIQUE (or my SubReceive)?!? Is that right? Some suggestion ? thanks in advance Jordan Jordanow Dwa tysiące lat temu Chiński Cesarz Smok podbił połowę świata. Teraz Wraca by dokończyć dzieło... Film pełen EFEKTÓW SPECJALNYCH. MUMIA: GROBOWIEC CESARZA SMOKA - w kinach. http://klik.wp.pl/?adr=http%3A%2F%2Fcorto.www.wp.pl%2Fas%2FMumiaGrobowiec.htmlsid=436 ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] collection, multiple roots, multiple id's - help
hi all. THE EXAMPLE: i have 4 motes: 0,1,3,4 (these are their TOS_NODE_ID) Inside them i have basically the same application that use a single collection with AREA_ID as colllection id BUT: node 0 and 1 have a enum inside them like this: AREA_ID=0 node 3 and 4 have AREA_ID=1 (for every node: i change the AREA_ID, i recompile and finally i deploy) Node 0 and 2 will act as root of the collection service. Node 1 and 3 will measure the ambient temperature and send it the the leader of their respective area (using the collection sender) so node 1 will send its data to node 0 and node 4 to node 3 This is (my) exptected behavior. THE PROBLEM: but this case sometimes work and sometimes not. both temperature nodes sent their data (connecting them to the pc i can see their printf ) node 0 and 2 indeed, sometimes both thei receive the data, sometimes only one of the two. INFO i'm using the tinyos 2 from CVS 4 tmotesky motes i attach the files of the application ANSWER?! am i missing something about the collection protocol? what can i check to understand what is failing? why sometimes work and sometimes not? thanks to all who will read this help request. regards, Mauro /** * Test per provare vari nodi con diverse collection con differenti id nella stessa rete */ #include printf.h enum{ AREA_ID= 0 , TEMPERATURE_CHECK_INTERVAL=3000 }; configuration NullAppC{} implementation { components MainC, NullC, LedsC; components new TimerMilliC() as TimerC; components CollectionC; components ActiveMessageC; components new CollectionSenderC(AREA_ID); components new TemperatureSensorC(); MainC.Boot - NullC; NullC.Leds-LedsC; NullC.TemperatureTimer-TimerC; NullC.TemperatureRead-TemperatureSensorC; NullC.CollectionControl-CollectionC; NullC.RadioControl-ActiveMessageC; NullC.RootControl-CollectionC; NullC.TemperatureSend-CollectionSenderC; NullC.TemperatureReceive-CollectionC.Receive[AREA_ID]; } #include printf.h #define boolToString(bool) ((bool) ? TRUE : FALSE) typedef nx_struct TemperatureMsg{ nx_uint16_t sender_id; nx_uint16_t value; }TemperatureMsg_t; module NullC { uses interface Boot; uses interface SplitControl as RadioControl; uses interface StdControl as CollectionControl; uses interface Readuint16_t as TemperatureRead; uses interface Send as TemperatureSend; uses interface Leds; uses interface TimerTMilli as TemperatureTimer; uses interface RootControl; uses interface Receive as TemperatureReceive; } implementation { message_t packet; bool sendBusy = FALSE; event void Boot.booted() { if(call RadioControl.start()!=SUCCESS){ call Leds.led0On(); printf(NODE %d\t| ERROR | radio start\n,TOS_NODE_ID); printfflush(); } printf(NODE %d\t| \n,TOS_NODE_ID); printfflush(); } event void RadioControl.startDone(error_t OK){ if(OK!=SUCCESS){ call Leds.led0On(); printf(NODE %d\t| ERRORE | radio start\n,TOS_NODE_ID); printfflush(); call RadioControl.start(); return; } printf(NODE %d\t| radio ok. collection start\n,TOS_NODE_ID); printfflush(); call CollectionControl.start(); switch(TOS_NODE_ID){ case 0: case 2: //leaders simply catch arriving data call RootControl.setRoot(); printf(NODE %d\t| AREA_ID: %d, IS_ROOT: %s \n,TOS_NODE_ID,AREA_ID,boolToString(call RootControl.isRoot())); printfflush(); break; case 1: case 3: //sensor nodes call RootControl.unsetRoot(); call TemperatureTimer.startPeriodic(TEMPERATURE_CHECK_INTERVAL); printf(NODE %d\t| AREA_ID: %d, IS_ROOT: %s \n,TOS_NODE_ID,AREA_ID,boolToString(call RootControl.isRoot())); printfflush(); break; default: call Leds.led0On(); printf(NODE %d\t| ERRORE | node id out of range\n,TOS_NODE_ID); printfflush(); return; } } event void RadioControl.stopDone(error_t OK){ } event void TemperatureTimer.fired(){ printf(NODE %d\t| timer fired\n,TOS_NODE_ID); printfflush(); call TemperatureRead.read(); } event void TemperatureRead.readDone(error_t OK, uint16_t temperature){ if(OK!=SUCCESS){ call Leds.led0On(); printf(NODE %d\t| ERRORE | temperature read\n,TOS_NODE_ID); printfflush(); return; } printf(NODE %d\t| temperature: %d\n,TOS_NODE_ID, temperature); printfflush(); if(!sendBusy){ TemperatureMsg_t * msg =(TemperatureMsg_t*)call TemperatureSend.getPayload(packet, sizeof(TemperatureMsg_t)); msg-sender_id=TOS_NODE_ID; msg-value = temperature; if (call TemperatureSend.send(packet, sizeof(TemperatureMsg_t)) != SUCCESS){ call Leds.led0On(); printf(NODE %d\t| ERRORE | temperature read\n,TOS_NODE_ID); printfflush(); return; }else { printf(NODE %d\t| temperature send\n,TOS_NODE_ID); printfflush(); sendBusy = TRUE; } }else{ call Leds.led0On(); printf(NODE %d\t| ERRORE | send blocked: radio busy\n,TOS_NODE_ID); printfflush(); return; } } event
[Tinyos-help] Changing the buffer size of printf (PRINTF_BUFFER_SIZE)
Hi, i tried to change the buffer size of printf as mentioned in the TinyOS documentation by adding the following line to my Makefile: CFLAGS += -DPRINTF_BUFFER_SIZE=2000 When I try to build the application it fails. The problem is that the last three lines of the following output repeat forever: - $ makesnooper.sh mkdir -p build/micaz compiling SnooperAppC to a micaz binary ncc -o build/micaz/main.exe -Os -I%T/lib/net/ctp -I%T/lib/net -I%T/lib/net/le -finline-limit=10 -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=build/micaz/app.c -board=mts300 -I/opt/tinyos-2.x/tos/lib/printf -I../ -DCC2420_NO_ACKNOWLEDGEMENTS -DCC2420_NO_ADDRESS_RECOGNITION -DPRINTF_BUFFER_SIZE=2000 -DIDENT_PROGRAM_NAME=\SnooperAppC\ -DIDENT_USER_ID=\Nicki\ -DIDENT_HOSTNAME=\ltnic\ -DIDENT_USER_HASH=0xce21d42fL -DIDENT_UNIX_TIME=0x4891a807L -DIDENT_UID_HASH=0xd45e3960L -fnesc-dump=wiring -fnesc-dump='interfaces(!abstract())' -fnesc-dump='referenced(interfacedefs, components)' -fnesc-dumpfile=build/micaz/wiring-check.xml SnooperAppC.nc -lm In file included from SnooperC.nc:1: /opt/tinyos-2.x/tos/lib/printf/printf.h:41:1: warning: PRINTF_BUFFER_SIZE redefined command line:5:1: warning: this is the location of the previous definition In file included from command line:13: /tmp/nesccppm2005000:1046:1: warning: PRINTF_BUFFER_SIZE redefined - Does anybody know a clean way to change the buffer size that works? Or am I doing anything wrong? I do not want to change it in the printf.h file because this would affect all applications and I only want to change it for my snooper application. Thanks Nicola ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] error using UartStream......
Hi, The uart communicatioin only uses RX and TX, those are the only pins you should be aware of. In the case of only transmit you are doing right, just connect the TX pin and also GND. Check te baudrate, byte length, parity, stop bits i.e 8N1, of the UartStream and your Led display. I am not sure you are sending the commands correctly, a1234, space caracter is actually decimal 32. try with a buffer like this to be sure char buff[6]={255,'a','1','2','3','4'}; call SendUartStream.send(buff,6); Bill On Thu, Jul 31, 2008 at 3:48 AM, Varun Jain [EMAIL PROTECTED] wrote: Hi, Thanks for your reply. I am sorry if I missed telling that I am using motes similar to Micaz in Tinyos-2.0.2 and Cygwin. The UART used here for Atmega128 is UART1. It is not used for Flash or Radio but is used only for serial communication. I am currently able to correctly do communication with the PC where as I want to attach a 7-segment LED screen to the serial port instead of a PC. I read the complete hardware specifications of both my motes and the serial cable attached to the LED screen. What the LED screen is EXPECTING is data on a single pin (RXD on led screenside) which should be connected to the TXD1 of the Atmel processor. Now my atmel atmega128 is connected to a RS-232 driver chip which is expecting RTS, CTS, TXD1 and RXD1, so my first question is if I use UartStream.send , will it just send the data to the TXD1 pin or do we need to send the complete control signals as my LED board is not expecting the control signals??? I went on to look the PlatformSerialC for my platform, it connects to Atm128Uart correctly and HplAtm128UartP,, so that should not be a problem. The next thing is that the my LED screen is expecting commands like as follows: [uid] ['a'/'b'…] [digit 1] [digit 2] [digit 3] [digit 4] Where: the uid preprogrammed is 255,so to send the equivalent ascii is a space, 'a' means turn on all the 4 LED's and digit1 is say '1',etc etc. So, what I am trying to do is something like this: Event void some_event() { call SendUartStream.send( a1234,6); } async event void SendUartStream.sendDone(uint8_t* buffered, uint16_t len, error_t ok) { if (ok == SUCCESS) { call Leds.led0Toggle(); } } async event void SendUartStream.receivedByte(uint8_t byte) { char string[] = a1234; call SendUartStream.send(string,6); call SendUartStream.disableReceiveInterrupt(); } async event void SendUartStream.receiveDone(uint8_t *buf, uint16_t len, error_t error) { call SendUartStream.send(buffer,6); } NOW I HAVE been able to get over with the errors sent earlier by declaring the receivedByte and receiveDone events (though, I do not still understand why we need to do this when we do not want to receive any byte, all I want is to just send the bytes to the UART), but the error is fixed, so I am trying to first get the LED screen working, but its not working. AM I using the UartStream.send incorrectly or am I missing something??? IS THERE something more that is needed to be done for using the UartStream?? Guillermo: I tried searching for the code you mention but could not find, I am not using Msp430 controller so, I do not have to request a resource, the resource is always mine. I hope I was able to explain my issue, please let me know if you people need more info for helping me out here.. Cheers, Varun Jain *From:* Guillermo De Cesco [mailto:[EMAIL PROTECTED] *Sent:* Wednesday, July 30, 2008 10:47 PM *To:* tinyos-help@millennium.berkeley.edu *Cc:* Varun Jain *Subject:* [Tinyos-help] error using UartStream.. Hi all, For all the ones that wants to use uart communication in tmote, some things have to be taken in consideration: -What uart do you want to use, UART1 is the uart associated with USB communication so this isn't the one you want to use probably. UART0 is the one exported in the expansion pin connector, but is also shared as a SPI bus with stm25p flash and cc2420 radio chips. -What type of communication you intend to establish, i.e just send bytes to uart, just receive, receive in response to a sent command, or send and receive in a full duplex manner were the receive is not correlated to the send event. Taken this things into account one cant do the following: -In the case that you use UART1 there is no problem at all, I mean you remove the usb or what ever but you have access to the uart, there is no conflict chip intervening in this uart. For the case you use UART0, the most common case: -For just sending: - you have to request the resource - when granted the resource send your bytes. - when send done
Re: [Tinyos-help] Uart and CC2420 module conflict on telos Platform?
Hi, I am a little confuse, BSN == tmote, isnt it? You are using tmote as your microcontroler to interact with your own CC2420 stack through one msp430 Uart. when you connect bsn to usb, does your application works or you have the same problem? you say that you use UART1 to communicate to platform1, but how do you achive this if UART1 is used by usb? if you are using uart0, we can talk about the issues I mentioned in the previous mail, in particular to your application. Related to debugging I always wanted to use ICE but never bought it. On Thu, Jul 31, 2008 at 5:52 AM, Han Yidong [EMAIL PROTECTED] wrote: Hi Bill, I saw your reply about UartStream error in the TinyOS mailing list. Impressive! Actually I also encountered the same Uart1 problem in my project. I am now using telos platform, which is BSN development kit from Imperial College London. This platform has SPI/Uart0 interface and Uart1. Our group is now using this BSN Development Kit to develop our own prototype, which use *another platform Platform1 to connect to BSN through Uart1 interface*, we build our own CC2420 stack on Platform1 and try to communicate with another BSN node trough CC2420, like the following graph. Telos(BSN) |-| | |---| SPI |---|| Uart |--| | | RF | --- | MSP430 |-|--|Platfrom1 | ||---| BSN Node|---| | | -| |-| *One thing I may mention is that, I plug the BSN into PC to utilize the USB power supply, but when I use battery , the UART1 could not work at all. I still don't know why.* Caus we don't have standalone CC2420 module*. What telos platform do is to function as Uart-SPI gateway in that we want to utilize the CC2420 module without using CC2420 stack on Telos .* On it, we use TinyOS 2.x to program the node, when operating the RF module, we use purely Usart interface to read or write CC2420, like the following interfaces: call Usart.clrTxIntr(); call Usart.tx( ch ); call InterruptFIFOP.clear(); When we try to operate CC2420 on BSN and meanwhile transmit data through Uart, then few problems happen. *1. **After SRXON command strobe is sent to CC2420, we continue to try to send data through Uart1, it turn that the data could not be received correctly at BSN side. But before that command, the Uart1 works quit well. * 2. The same problem would happen after I send STXON command strobe. 3. Since we only trace to the STXON step, we could not guarantee there's no problem for other command strobes, if so, can you point them out? *Have you ever encountered this kind of problem? Or do you have any idea about these? * * * *Besides, Is there any efficient method to debug BSN development kit, or telos platform? Do we need to buy other ICE tools if we want to debug BSN? * Best Wishes, Yidong, Neil ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Changing the buffer size of printf (PRINTF_BUFFER_SIZE)
I'm not sure which version of printf you are using, but the version in cvs should work as outlined in the tutorial. Kevin On Thu, Jul 31, 2008 at 5:37 AM, Nicola Wegner [EMAIL PROTECTED] wrote: Hi, i tried to change the buffer size of printf as mentioned in the TinyOS documentation by adding the following line to my Makefile: CFLAGS += -DPRINTF_BUFFER_SIZE=2000 When I try to build the application it fails. The problem is that the last three lines of the following output repeat forever: - $ makesnooper.sh mkdir -p build/micaz compiling SnooperAppC to a micaz binary ncc -o build/micaz/main.exe -Os -I%T/lib/net/ctp -I%T/lib/net -I%T/lib/net/le -finline-limit=10 -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=build/micaz/app.c -board=mts300 -I/opt/tinyos-2.x/tos/lib/printf -I../ -DCC2420_NO_ACKNOWLEDGEMENTS -DCC2420_NO_ADDRESS_RECOGNITION -DPRINTF_BUFFER_SIZE=2000 -DIDENT_PROGRAM_NAME=\SnooperAppC\ -DIDENT_USER_ID=\Nicki\ -DIDENT_HOSTNAME=\ltnic\ -DIDENT_USER_HASH=0xce21d42fL -DIDENT_UNIX_TIME=0x4891a807L -DIDENT_UID_HASH=0xd45e3960L -fnesc-dump=wiring -fnesc-dump='interfaces(!abstract())' -fnesc-dump='referenced(interfacedefs, components)' -fnesc-dumpfile=build/micaz/wiring-check.xml SnooperAppC.nc -lm In file included from SnooperC.nc:1: /opt/tinyos-2.x/tos/lib/printf/printf.h:41:1: warning: PRINTF_BUFFER_SIZE redefined command line:5:1: warning: this is the location of the previous definition In file included from command line:13: /tmp/nesccppm2005000:1046:1: warning: PRINTF_BUFFER_SIZE redefined - Does anybody know a clean way to change the buffer size that works? Or am I doing anything wrong? I do not want to change it in the printf.h file because this would affect all applications and I only want to change it for my snooper application. Thanks Nicola ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help -- ~Kevin ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Implementation of CTP - SentCache
Hello list, I'm currently working on a special-purpose derivate of CTP and therefore read all the source code to get an overview. One point that is totally unclear to me is in CtpForwardingEngineP (most recent CVS release). It says (line 439): // Once we are here, we have decided to send the packet. if (call SentCache.lookup(qe-msg)) { call CollectionDebug.logEvent(NET_C_FE_DUPLICATE_CACHE_AT_SEND); call SendQueue.dequeue(); if (call MessagePool.put(qe-msg) != SUCCESS) call CollectionDebug.logEvent(NET_C_FE_PUT_MSGPOOL_ERR); if (call QEntryPool.put(qe) != SUCCESS) call CollectionDebug.logEvent(NET_C_FE_PUT_QEPOOL_ERR); post sendTask(); return; } OK, so it should *stop sending* and drop the next packet, in the case that this packet (i.e. something very similar...) has already been sent before. That's what I think... Unfortunately, my opinion collides with the comment Once we are here, we have decided to send the packet. and the implementation of the cache itself. As stated in LruCtpMsgCacheP, the result of lookup is: if key [packet] is in cache returns the index (offset by first), otherwise returns count [of enqueued packets]. So... The packet is dropped *everytime*, except that is is the first one in the sent cache or the cache is empty? What does this position imply for the packet, except that it is the oldest one that I can remember? I'm very sure that I missed something important, as this implementation looks senseless to me ATM. Please help me! Thank you, Oliver ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] TinyOS and Eclipse
Hello Ramus, Nescdt was the first TinyOS plug-in I tried. After linking in C:\Program Files\UCB\cygwin\opt\tinyos-2.x\tos to my project, I added a new file, main.c: void main(void) { _NOP(); } However, the Create and Build options under Project - Make Target are greyed out (http://www.enlightenedcode.net/temp/eclipse_screen_capture.JPG), and if I click the Make Target button in the Make Targets pane on the right, nothing happens. It's as if there is a path error in linking the nescdt plug-in with the installed tinyos on cygwin. I'm also working on installing the TinyOS Plug-in for Eclipse from DCG (http://dcg.ethz.ch/projects/tos_ide/). Is anyone familiar with this plug-in? -Jim Date: Wed, 30 Jul 2008 21:28:07 +0200 From: Rasmus Ulslev Pedersen [EMAIL PROTECTED] Subject: [Tinyos-help] TinyOS and Eclipse To: tinyos-help@millennium.berkeley.edu Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=windows-1252; format=flowed Hi Jim and MS, There is perhaps a way to do it: An editor (Eclipse plugin) project for nesC was started some weeks ago. It was committed to contrib a few days ago, and it is not tested so much yet... But if you go to the contrib index; http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x-contrib/c ontrib.html and look for nescdt in the Tools column; and then follow the links you will find the page in the TinyOS wiki that describes how to use (and extend (or fix bugs)) the editor (or go directly to the home page http://docs.tinyos.net/index.php/NESCDT-_An_editor_for_nesC_in_Eclipse). Good luck, Rasmus PS: Perhaps drop me a note if you have time to give nescdt a try? I have been unsuccessful in repeated attempts to make either of the Eclipse TOS plugins work, perhaps due to my inability to follow instructions...if anyone has been successful I'd love to hear about it. However I do use Eclipse with TOS as a big search engine. I create an Eclipse Project at the top of the tinyos tree and make some sub-search components (I forget what they are called, but under Search-File you can select areas to search). Unfortunately Eclipse will only allow you to have one Project in any directory tree. I haven't found a way to make sub- projects for individual apps because TOS seems to insist on having it's devel tree tightly integrated. MS Jim Fell wrote: / Hello. I?m hoping to develop with TinyOS using Eclipse on a Windows XP // platform. In installed the recommended MSP430 RPMs from this page: // // // // http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html // // // // Now, in Eclipse I?m unsure as to which directory I should link my // Eclipse TinyOS project to for a proper build. I currently have it // linked to here: // // // // C:\Program Files\UCB\cygwin\opt\msp430 // // // // Is this correct, or is there a better folder? // // // // Thanks, // // // // *Jim Fell* ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Changing the buffer size of printf (PRINTF_BUFFER_SIZE)
2008/7/31 Kevin Klues [EMAIL PROTECTED]: I'm not sure which version of printf you are using, but the version in cvs should work as outlined in the tutorial. Kevin Hi, yes, I did not use the latest version. Now I have changed to the latest version from cvs and I get a lot of errors. I removed explicit flush from my code but still errors. In the cvs comments it is written that you do not need any wiring. I am a little bit confused now :-O Is there any usage example for the new version? Below the errors I get... $ makesnooper.sh mkdir -p build/micaz compiling SnooperAppC to a micaz binary ncc -o build/micaz/main.exe -Os -I%T/lib/net/ctp -I%T/lib/net -I%T/lib/net/le -finlin e-limit=10 -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=build/micaz/app.c -board=mts300 -I/opt/tinyos-2.x/tos/lib/printf -I../ -DCC2420_NO_ACKNOWLEDGEMENTS -D CC2420_NO_ADDRESS_RECOGNITION -DPRINTF_BUFFER_SIZE=1000 -DIDENT_PROGRAM_NAME=\Snoope rAppC\ -DIDENT_USER_ID=\Nicki\ -DIDENT_HOSTNAME=\ltnic\ -DIDENT_USER_HASH=0xce21 d42fL -DIDENT_UNIX_TIME=0x4891c872L -DIDENT_UID_HASH=0x9bd619eaL -fnesc-dump=wiring - fnesc-dump='interfaces(!abstract())' -fnesc-dump='referenced(interfacedefs, component s)' -fnesc-dumpfile=build/micaz/wiring-check.xml SnooperAppC.nc -lm In file included from /opt/tinyos-2.x/tos/lib/printf/printf.h:49, from SnooperC.nc:1, from SnooperAppC.nc:6: /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:408: syntax error before `3' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:598: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:604: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:611: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:616: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:639: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:645: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:653: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:659: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:665: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:675: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:681: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:687: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:693: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:703: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:709: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:714: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:720: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:727: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:732: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:738: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:743: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:753: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:761: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:766: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:800: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:812: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:819: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:831: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:836: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:847: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:858: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1008: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1013: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1021: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1026: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1033: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1038: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1046: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1054: syntax error before `__buf' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1059: syntax error before `__buf' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1071: syntax error before `stream' In file included from /opt/tinyos-2.x/tos/lib/printf/PrintfC.nc:56, from /opt/tinyos-2.x/tos/lib/printf/MainC.nc:51, from SnooperAppC.nc:8: /opt/tinyos-2.x/tos/lib/printf/PrintfP.nc:80: warning: implicit declaration of functi on `TCAST' /opt/tinyos-2.x/tos/lib/printf/PrintfP.nc:80:
Re: [Tinyos-help] Changing the buffer size of printf (PRINTF_BUFFER_SIZE)
It llooks like you are using alot of old stuff (old avr compiler, old tinyos-tools, etc.), you should probably look into updating... if not, see the tutorial below for instructions for using printf with tinyos-2.0.2 (link at the top) The tutorial for printf is here: http://docs.tinyos.net/index.php/The_TinyOS_printf_Library Kevin On Thu, Jul 31, 2008 at 7:27 AM, Nicola Wegner [EMAIL PROTECTED] wrote: 2008/7/31 Kevin Klues [EMAIL PROTECTED]: I'm not sure which version of printf you are using, but the version in cvs should work as outlined in the tutorial. Kevin Hi, yes, I did not use the latest version. Now I have changed to the latest version from cvs and I get a lot of errors. I removed explicit flush from my code but still errors. In the cvs comments it is written that you do not need any wiring. I am a little bit confused now :-O Is there any usage example for the new version? Below the errors I get... $ makesnooper.sh mkdir -p build/micaz compiling SnooperAppC to a micaz binary ncc -o build/micaz/main.exe -Os -I%T/lib/net/ctp -I%T/lib/net -I%T/lib/net/le -finlin e-limit=10 -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=build/micaz/app.c -board=mts300 -I/opt/tinyos-2.x/tos/lib/printf -I../ -DCC2420_NO_ACKNOWLEDGEMENTS -D CC2420_NO_ADDRESS_RECOGNITION -DPRINTF_BUFFER_SIZE=1000 -DIDENT_PROGRAM_NAME=\Snoope rAppC\ -DIDENT_USER_ID=\Nicki\ -DIDENT_HOSTNAME=\ltnic\ -DIDENT_USER_HASH=0xce21 d42fL -DIDENT_UNIX_TIME=0x4891c872L -DIDENT_UID_HASH=0x9bd619eaL -fnesc-dump=wiring - fnesc-dump='interfaces(!abstract())' -fnesc-dump='referenced(interfacedefs, component s)' -fnesc-dumpfile=build/micaz/wiring-check.xml SnooperAppC.nc -lm In file included from /opt/tinyos-2.x/tos/lib/printf/printf.h:49, from SnooperC.nc:1, from SnooperAppC.nc:6: /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:408: syntax error before `3' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:598: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:604: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:611: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:616: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:639: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:645: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:653: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:659: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:665: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:675: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:681: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:687: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:693: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:703: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:709: syntax error before `__s' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:714: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:720: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:727: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:732: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:738: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:743: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:753: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:761: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:766: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:800: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:812: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:819: syntax error before `__str' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:831: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:836: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:847: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:858: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1008: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1013: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1021: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1026: syntax error before `__stream' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1033: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1038: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1046: syntax error before `__fmt' /opt/tinyos-2.x/tos/lib/printf/avr_stdio.h:1054: syntax error
Re: [Tinyos-help] ADC based off DigOutput
When I'm trying to build this code under tinyos-2.0.2-2 for mica2 or micaz, I get errors because of on the i2c_flags_t declaration in I2CPacket in the tos/interfaces/I2CPacket.nc Can someone point out where nesc is supposed to be picking up the definition of that data type? Thanks, Eric On Wed, Jul 30, 2008 at 11:51 AM, Charles Elliott [EMAIL PROTECTED] wrote: Hi Chris I've been trying to get a ADC driver working based on your DigOutput code. I've attached my code. This is the error I get when I'm trying to compile: $ make mica2 mkdir -p build/mica2 compiling Test2AppC to a mica2 binary ncc -o build/mica2/main.exe -Os -Wall -Wshadow -Wnesc-all -target=mica2 -fnesc- cfile=build/mica2/app.c -board=micasb -DDEFINED_TOS_AM_GROUP=0x22 -finline-limit =10 -DIDENT_APPNAME=\Test2AppC\ -DIDENT_USERNAME=\ani\ -DIDENT_HOSTNAME= \DOAD06-89CD7F8F\ -DIDENT_USERHASH=0x9a391b60L -DIDENT_TIMESTAMP=0x48908a44L - DIDENT_UIDHASH=0x02b4a7f2L -fnesc-dump=wiring -fnesc-dump='interfaces(!abstract( ))' -fnesc-dump='referenced(interfacedefs, components)' -fnesc-dumpfile=build/mi ca2/wiring-check.xml Test2AppC.nc -lm Exception in thread main com.sun.org.apache.xerces.internal.impl.io.MalformedB yteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence. at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unk nown Source) at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown So urce) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(Unk nown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp l$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(U nknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next (Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp l.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U nknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U nknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown So urce) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un known Source) at net.tinyos.nesc.dump.NDReader.parse(NDReader.java:97) at net.tinyos.nesc.wiring.WiringCheck.main(WiringCheck.java:147) make: *** [exe0] Error 1 I get the same error if I make iris. Any ideas? Thanks Charles ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] eetx value doesn't increase for neighbors
Hi all, I am working on tinyos 2.x (not the latest CVS release). I am currently doing modifications on CtpRoutingEngineP.nc file in order to choose a parent considering severals parameters such as congestion and energy in extra of ETX. For that I check all the neighbors in the Routing Table built in the file. The problem is when a node is no longer alive ( for example if you move the motes) , it stays in the routing Tableand then it is considered for the choice of a new parent. I guess that the link Etx value should avoid to consider bad link but it doesn't. The link quality must increase in a signifiant way when a neighbor mote die but in fact, towards what I observed, it stays at the same valueThis comes from LinkEstimator component with the eetx value. I know that there was problems about eetx not increasing in the past but I am using the revision 1.6 of this file and it should works so I don't understand at all what happens. Can someone tell me if this is a bug or if the eetx value only increases when the parent (and not a simple neighbor) is lost? Thank you, Phil. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] TinyOS and Eclipse
I tried the dcg.ethz.ch version sometime ago with less than stellar results. I don't remember the details but I think I got basically nothing... I also tried this one: http://sourceforge.net/projects/tinydt/ and again, my memory is it sort-of worked exactly once, then stopped and no amount of reinstalling had any effect. As I said, I'm not good at following instructions so I probably missed some important detail. But I have tried both of the above a couple times thinking that might be the problem... I believe Ramus said that the nescdt plugin just does code highlighting and completion now. At least he said it doesn't do any config parsing to make it easy to navigate TOS code. So I suppose the build options are there to make it tantalizing enough that someone might implement them... MS Jim Fell wrote: Hello Ramus, Nescdt was the first TinyOS plug-in I tried. After linking in C:\Program Files\UCB\cygwin\opt\tinyos-2.x\tos to my project, I added a new file, main.c: void main(void) { _NOP(); } However, the Create and Build options under Project - Make Target are greyed out (http://www.enlightenedcode.net/temp/eclipse_screen_capture.JPG), and if I click the Make Target button in the Make Targets pane on the right, nothing happens. It's as if there is a path error in linking the nescdt plug-in with the installed tinyos on cygwin. I'm also working on installing the TinyOS Plug-in for Eclipse from DCG (http://dcg.ethz.ch/projects/tos_ide/). Is anyone familiar with this plug-in? -Jim Date: Wed, 30 Jul 2008 21:28:07 +0200 From: Rasmus Ulslev Pedersen [EMAIL PROTECTED] Subject: [Tinyos-help] TinyOS and Eclipse To: tinyos-help@millennium.berkeley.edu Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=windows-1252; format=flowed Hi Jim and MS, There is perhaps a way to do it: An editor (Eclipse plugin) project for nesC was started some weeks ago. It was committed to contrib a few days ago, and it is not tested so much yet... But if you go to the contrib index; http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x-contrib/c ontrib.html and look for nescdt in the Tools column; and then follow the links you will find the page in the TinyOS wiki that describes how to use (and extend (or fix bugs)) the editor (or go directly to the home page http://docs.tinyos.net/index.php/NESCDT-_An_editor_for_nesC_in_Eclipse). Good luck, Rasmus PS: Perhaps drop me a note if you have time to give nescdt a try? I have been unsuccessful in repeated attempts to make either of the Eclipse TOS plugins work, perhaps due to my inability to follow instructions...if anyone has been successful I'd love to hear about it. However I do use Eclipse with TOS as a big search engine. I create an Eclipse Project at the top of the tinyos tree and make some sub-search components (I forget what they are called, but under Search-File you can select areas to search). Unfortunately Eclipse will only allow you to have one Project in any directory tree. I haven't found a way to make sub- projects for individual apps because TOS seems to insist on having it's devel tree tightly integrated. MS Jim Fell wrote: / Hello. I?m hoping to develop with TinyOS using Eclipse on a Windows XP // platform. In installed the recommended MSP430 RPMs from this page: // // // // http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html // // // // Now, in Eclipse I?m unsure as to which directory I should link my // Eclipse TinyOS project to for a proper build. I currently have it // linked to here: // // // // C:\Program Files\UCB\cygwin\opt\msp430 // // // // Is this correct, or is there a better folder? // // // // Thanks, // // // // *Jim Fell* ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Changing the buffer size of printf (PRINTF_BUFFER_SIZE)
2008/7/31 Kevin Klues [EMAIL PROTECTED]: It llooks like you are using alot of old stuff (old avr compiler, old tinyos-tools, etc.), you should probably look into updating... if not, see the tutorial below for instructions for using printf with tinyos-2.0.2 (link at the top) I have updated my whole tinyos-2.x directory and printf works well now. Thanks for your help! Nicola ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] help installing blink on iris
Having problems installing Blink on IRIS with MIB520. Followed installation tutorial for Mac OS X: http://docs.tinyos.net/index.php/Installing_tinyos-2.x_on_Mac_OS_X_%28Tiger_%26_Leopard%29#Installing_avr_tools_for_Mica_Support Do I need to install something else for IRIS support? Using command: make iris install mib520,/dev/tty.usbserial-XBR3EDJYB mkdir -p build/iris compiling BlinkAppC to a iris binary ncc -o build/iris/main.exe -Os -Wall -Wshadow -Wnesc-all -target=iris -fnesc-cfile=build/iris/app.c -board=micasb - DDEFINED_TOS_AM_GROUP=0x22 --param max-inline-insns-single=10 - DIDENT_APPNAME=\BlinkAppC\ -DIDENT_USERNAME=\jcarneiro\ - DIDENT_HOSTNAME=\MacBookPro.loca\ -DIDENT_USERHASH=0x687a91fbL - DIDENT_TIMESTAMP=0x4891e802L -DIDENT_UIDHASH=0x4e04f3e7L -fnesc- dump=wiring -fnesc-dump='interfaces(!abstract())' -fnesc- dump='referenced(interfacedefs, components)' -fnesc-dumpfile=build/ iris/wiring-check.xml BlinkAppC.nc -lm command-line: warning: __STDC__ redefined /tmp/nesccppb9b404Y:70:1: warning: this is the location of the previous definition compiled BlinkAppC to build/iris/main.exe 2308 bytes in ROM 51 bytes in RAM avr-objcopy --output-target=srec build/iris/main.exe build/iris/ main.srec avr-objcopy --output-target=ihex build/iris/main.exe build/iris/ main.ihex writing TOS image cp build/iris/main.srec build/iris/main.srec.out installing iris binary using mib510 avrdude -cmib510 -P/dev/tty.usbserial-XBR3EDJYB -U hfuse:w:0xd9:m - pm1281 -U efuse:w:0xff:m -C/etc/avrdude/avrdude.conf -U flash:w:build/ iris/main.srec.out:a make: avrdude: Command not found make: *** [program] Error 127 Regards, Joao ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] Reading Serial Packets with TOSSIM Live
I'm sure this is somewhere on the forum already but I can not find it. Does anyone have a code snippet on how read a serial packet from TOSSIM live. I can inject them into the Mote but can not receive them back in the python code. Raymond ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] JTAG adapter interface for the TelosB/Tmote Sky
Does anyone know where to purchase the JTAG adapter that interfaces with the MSP-FET430UIF JTAG Tool for the TelosB/Tmote Sky motes? The moteiv is now Sentilla, and don't think Sentilla is selling them anymore. Thank you ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] default event problem - not implemented
Hi I have a problem defining the default events for my interface. The module implementation contains: signal Interface.Receive(msg, payload, len); ... default async event message_t* Interface.Receive(message_t* msg, void* payload, uint8_t len) { return msg; } And the interface contains: async event message_t* Receive(message_t* msg, void* payload, uint8_t len); But When I wire an application to this Interface I always get the following error: TestC.nc:32: `Interface.Receive' not implemented I cant see why the default does not work. Thanks J ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] TinyOS and Eclipse
Hi MS and Jim, It is nice that you try to use it. The immediate goal for me when starting the project was to code faster and having to remember less when coding. Code completion (even though it is sorrowful simple) in nescdt helps some. Syntax highlighting is a must so that is done. The next step is maybe to get some sort of code navigation going so if you press F3 then you go to the definition of a certain variable. Another place where I found myself spending (ie. wasting) some time was trying to remember if a file was a module or a configuration. So I implemented an outline that uses the same symbols as nesdoc to show what type a file is before you open it. Small things, but still it saves some time. Other plugins are probably more comprehensive and requires perhaps more maintenance. This UI centric plugin does not tinker with the build process (yet:-)), so that is why you did not get so much success there. My reason for this is to lower the barrier of entry for those who like to invoke make from a shell as they do today, but just want an Eclipse based editor for nesC. However, I think an easy way to do something useful is to invoke make from within nescdt and hook into the output produced by the build process. It would be possible to read the line number that causes trouble I think and provide a few of the features that make Eclipse a really nice Java IDE. My best guess is that it would take up to two years more before this plugin is fully developed. Best, Rasmus PS: Jim: thanks for the picture (http://www.enlightenedcode.net/temp/eclipse_screen_capture.JPG). Good documentation of what you meant. It (nescdt) will at *most* do what you see here: http://docs.tinyos.net/index.php/NESCDT-_An_editor_for_nesC_in_Eclipse and the target things are not done. Michael Schippling wrote: I tried the dcg.ethz.ch version sometime ago with less than stellar results. I don't remember the details but I think I got basically nothing... I also tried this one: http://sourceforge.net/projects/tinydt/ and again, my memory is it sort-of worked exactly once, then stopped and no amount of reinstalling had any effect. As I said, I'm not good at following instructions so I probably missed some important detail. But I have tried both of the above a couple times thinking that might be the problem... I believe Ramus said that the nescdt plugin just does code highlighting and completion now. At least he said it doesn't do any config parsing to make it easy to navigate TOS code. So I suppose the build options are there to make it tantalizing enough that someone might implement them... MS Jim Fell wrote: Hello Ramus, Nescdt was the first TinyOS plug-in I tried. After linking in C:\Program Files\UCB\cygwin\opt\tinyos-2.x\tos to my project, I added a new file, main.c: void main(void) { _NOP(); } However, the Create and Build options under Project - Make Target are greyed out (http://www.enlightenedcode.net/temp/eclipse_screen_capture.JPG), and if I click the Make Target button in the Make Targets pane on the right, nothing happens. It's as if there is a path error in linking the nescdt plug-in with the installed tinyos on cygwin. I'm also working on installing the TinyOS Plug-in for Eclipse from DCG (http://dcg.ethz.ch/projects/tos_ide/). Is anyone familiar with this plug-in? -Jim Date: Wed, 30 Jul 2008 21:28:07 +0200 From: Rasmus Ulslev Pedersen [EMAIL PROTECTED] Subject: [Tinyos-help] TinyOS and Eclipse To: tinyos-help@millennium.berkeley.edu Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=windows-1252; format=flowed Hi Jim and MS, There is perhaps a way to do it: An editor (Eclipse plugin) project for nesC was started some weeks ago. It was committed to contrib a few days ago, and it is not tested so much yet... But if you go to the contrib index; http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x-contrib/c ontrib.html and look for nescdt in the Tools column; and then follow the links you will find the page in the TinyOS wiki that describes how to use (and extend (or fix bugs)) the editor (or go directly to the home page http://docs.tinyos.net/index.php/NESCDT-_An_editor_for_nesC_in_Eclipse). Good luck, Rasmus PS: Perhaps drop me a note if you have time to give nescdt a try? I have been unsuccessful in repeated attempts to make either of the Eclipse TOS plugins work, perhaps due to my inability to follow instructions...if anyone has been successful I'd love to hear about it. However I do use Eclipse with TOS as a big search engine. I create an Eclipse Project at the top of the tinyos tree and make some sub-search components (I forget what they are called, but under Search-File you can select areas to search). Unfortunately Eclipse will only allow you to have one Project in any directory tree. I haven't found a way to make sub- projects for individual apps because TOS seems to insist
Re: [Tinyos-help] Reading Serial Packets with TOSSIM Live
TOSSIM Live provides the SerialForwarder module: from TOSSIM import SerialForwarder sf = SerialForwarder(9002) Then it's just a matter of listening to a SF connection on port 9002 (good luck ;-). It should be connectible using sflisten, et al. However, the standard sim-sf time synchronization does not play nice with python threads and sf works on a poll-basis. There is some python code to read from an SF connection distributed in support/sdk/python, IIRC. I think I tried to use it once, but dropped it for issues with my design. I am using a custom (thread-friendly) time synchronizer and a basic asyncore wrapper (understands enough SF to dispatch) with threads and Queues. HTH, Paul On Thu, Jul 31, 2008 at 9:38 AM, Raymond Paxton [EMAIL PROTECTED] wrote: I'm sure this is somewhere on the forum already but I can not find it. Does anyone have a code snippet on how read a serial packet from TOSSIM live. I can inject them into the Mote but can not receive them back in the python code. Raymond ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] TOSSIM help
It varies by version, some links to see: http://docs.tinyos.net/index.php/TOSSIM http://www.tinyos.net/tinyos-1.x/doc/tutorial/lesson5.html http://www.tinyos.net/tinyos-1.x/doc/tython/manual.html http://www.cs.berkeley.edu/~pal/pubs/nido.pdf On Tue, Jul 29, 2008 at 2:22 AM, kashif.saghar [EMAIL PROTECTED] wrote: Dear all I am new to TOSSIM. I have read some help documents and manuals for TOSSIM. I want to ask if there any Book on TOSSIM that can help. Thanks This e-mail is intended solely for the addressee. It may contain private and confidential information. If you are not the intended addressee, please take no action based on it nor show a copy to anyone. Please reply to this e-mail to highlight the error. You should also be aware that all electronic mail from, to, or within Northumbria University may be the subject of a request under the Freedom of Information Act 2000 and related legislation, and therefore may be required to be disclosed to third parties. This e-mail and attachments have been scanned for viruses prior to leaving Northumbria University. Northumbria University will not be liable for any losses as a result of any viruses being passed on. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Limited number of timers?
I must be evil. I have used VirtualizeTimerC, wired to a new TimerMilliC as the source, IIRC. It worked nice for parameterization. HTH, Paul ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Is it possible for each node send/receive messages with different AM id?
I would look for a logic-level bug. What results do you get from the send? SUCCESS? EBUSY? EFAIL? Are there any guards? If so, how and where? HTH, Paul On Tue, Jul 29, 2008 at 4:40 AM, weiping SONG [EMAIL PROTECTED] wrote: weiping SONG wrote: Hi all, I uploaded an application to nodes, which is to make each node send/recieve normal messages with a special AM id, and there is a component can send/receive message wtih another Am id for managing nodes. But I found nodes can recieve managing messages once in a while and they can not receive messages any more if they send a managing messages. I don't know why, could you give some advice? Regards, Weiping ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help I have also found that the rxFrameLength = 0 after I sending the managing packets and receiving next packets, so all packets can not send to upper components. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Limited number of timers?
2008/7/31 Paul Stickney [EMAIL PROTECTED]: I must be evil. I have used VirtualizeTimerC, wired to a new TimerMilliC as the source, IIRC. It worked nice for parameterization. HTH, Paul Yes you seem to be very evil ;) In my case it worked too. But I did not know if it was necessary for my usage. In special cases I think you are right. Nicola ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] making a loop sleep.
TOSSIM is a discreet-event simulator. It will only run things as they need to be run (e.g. events) and normally in the loop, it runs them as fast as they can be processed. You can tell Tossim to run an event at a specific time by using newPacket().deliver() to trigger an event and then overlay that with a state-machine based on time. SimX/Event is such a wrapper. To run things in real-world time, see sim-sf (or simx/tsync). HTH, Paul ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] TinyOS Question
Just my depreciating two cents: use the cygwin (or linux?) shell environment to make and install the your TinyOS code to the motes. Eclipse should be just fine as an editor using C rules. HTH, Paul On Wed, Jul 30, 2008 at 6:53 AM, Jim Fell [EMAIL PROTECTED] wrote: Hello. How do I write a program to run TinyOS on the TelosB mote? I've installed Eclipse, but I can't figure out how to install the proper plugin to get it to work with the mote. Any guidance here would be appreciated. Jim Fell Software Engineer LS Research, LLC Email: [EMAIL PROTECTED] http://www.lsr.com/ Notice: This message and any included attachments are intended only for the use of the addressee, and may contain information that is privileged or confidential. If you are not the intended recipient, you are hereby notified that any review, copying or distribution of this communication is strictly prohibited. If you have received this e-mail in error, please destroy the original message and any copies or printouts hereof. Any views or opinions presented are solely those of the author of this e-mail, and do not necessarily represent those of LS Research, LLC, unless otherwise specifically stated. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] JTAG adapter interface for the TelosB/Tmote Sky
The connector is a 14 pin ribbon cable that needs to be properly soldered to the TelosB.We figured it out from the telosb schematic. There is a 14 pin dual inline connector. I don't know of anyone that sells them. eric On Thu, Jul 31, 2008 at 10:03 AM, Aisha Neal [EMAIL PROTECTED] wrote: Does anyone know where to purchase the JTAG adapter that interfaces with the MSP-FET430UIF JTAG Tool for the TelosB/Tmote Sky motes? The moteiv is now Sentilla, and don't think Sentilla is selling them anymore. Thank you ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help -- Eric B. Decker Senior (over 50 :-) Researcher Autonomous Systems Lab Jack Baskin School of Engineering UCSC ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Uart and CC2420 module conflict on telos Platform?
Hi, Thanks a lot for your answer. You got the problem I encountered. And BSN should belong to telosa platform. I use this platform makefile to compile. Cauz BSN provide a extension board, which has Uart1tx and Uart1rx pins. So I could use its Uart1 interface, beside the USB programming function of Uart1. When I program the BSN node by USB, the BSN will be reset, afterwards, Uart1 could be controlled by the application. Pity thing is, for our CC2420 stack, it could only run on Platform1, and no way to run on PC to test. But Uart1 works quit well before that CC2420 command being executed. This problem really got me frustrated, haha… Thanks again^_^ Best Wishes, Yidong, Neil From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Guillermo De Cesco Sent: 2008年7月31日 21:13 To: Han Yidong Cc: tinyos-help@millennium.berkeley.edu Subject: Re: [Tinyos-help] Uart and CC2420 module conflict on telos Platform? Hi, I am a little confuse, BSN == tmote, isnt it? You are using tmote as your microcontroler to interact with your own CC2420 stack through one msp430 Uart. when you connect bsn to usb, does your application works or you have the same problem? you say that you use UART1 to communicate to platform1, but how do you achive this if UART1 is used by usb? if you are using uart0, we can talk about the issues I mentioned in the previous mail, in particular to your application. Related to debugging I always wanted to use ICE but never bought it. On Thu, Jul 31, 2008 at 5:52 AM, Han Yidong [EMAIL PROTECTED] wrote: Hi Bill, I saw your reply about UartStream error in the TinyOS mailing list. Impressive! Actually I also encountered the same Uart1 problem in my project. I am now using telos platform, which is BSN development kit from Imperial College London. This platform has SPI/Uart0 interface and Uart1. Our group is now using this BSN Development Kit to develop our own prototype, which use another platform Platform1 to connect to BSN through Uart1 interface, we build our own CC2420 stack on Platform1 and try to communicate with another BSN node trough CC2420, like the following graph. Telos(BSN) |-| | |---| SPI |---||Uart |--| | | RF | --- | MSP430 |-|--|Platfrom1 | ||---| BSN Node|---|| | -| |-| One thing I may mention is that, I plug the BSN into PC to utilize the USB power supply, but when I use battery , the UART1 could not work at all. I still don't know why. Caus we don't have standalone CC2420 module. What telos platform do is to function as Uart-SPI gateway in that we want to utilize the CC2420 module without using CC2420 stack on Telos . On it, we use TinyOS 2.x to program the node, when operating the RF module, we use purely Usart interface to read or write CC2420, like the following interfaces: call Usart.clrTxIntr(); call Usart.tx( ch ); call InterruptFIFOP.clear(); When we try to operate CC2420 on BSN and meanwhile transmit data through Uart, then few problems happen. 1. After SRXON command strobe is sent to CC2420, we continue to try to send data through Uart1, it turn that the data could not be received correctly at BSN side. But before that command, the Uart1 works quit well. 2. The same problem would happen after I send STXON command strobe. 3. Since we only trace to the STXON step, we could not guarantee there's no problem for other command strobes, if so, can you point them out? Have you ever encountered this kind of problem? Or do you have any idea about these? Besides, Is there any efficient method to debug BSN development kit, or telos platform? Do we need to buy other ICE tools if we want to debug BSN? Best Wishes, Yidong, Neil ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Implementation of CTP - SentCache
On Thu, Jul 31, 2008 at 7:01 AM, Oliver Frietsch [EMAIL PROTECTED] wrote: Hello list, I'm currently working on a special-purpose derivate of CTP and therefore read all the source code to get an overview. One point that is totally unclear to me is in CtpForwardingEngineP (most recent CVS release). It says (line 439): // Once we are here, we have decided to send the packet. if (call SentCache.lookup(qe-msg)) { call CollectionDebug.logEvent(NET_C_FE_DUPLICATE_CACHE_AT_SEND); call SendQueue.dequeue(); if (call MessagePool.put(qe-msg) != SUCCESS) call CollectionDebug.logEvent(NET_C_FE_PUT_MSGPOOL_ERR); if (call QEntryPool.put(qe) != SUCCESS) call CollectionDebug.logEvent(NET_C_FE_PUT_QEPOOL_ERR); post sendTask(); return; } OK, so it should *stop sending* and drop the next packet, in the case that this packet (i.e. something very similar...) has already been sent before. That's what I think... Unfortunately, my opinion collides with the comment Once we are here, we have decided to send the packet. The comment is misleading. As you note, there are more tests done after the comment before deciding to send the packet. and the implementation of the cache itself. As stated in LruCtpMsgCacheP, the result of lookup is: if key [packet] is in cache returns the index (offset by first), otherwise returns count [of enqueued packets]. So... The packet is dropped *everytime*, except that is is the first one in the sent cache or the cache is empty? What does this position imply for the packet, except that it is the oldest one that I can remember? I'm very sure that I missed something important, as this implementation looks senseless to me ATM. Please help me! Cache.lookup returns TRUE if a packet with the same signature is in the cache. This TRUE/FALSE return by Cache.lookup is different from what the internal lookup function in LruCtpMsgCacheP.nc returns. The internal lookup function in LruCtpMsgCacheP.nc returns the position of a packet in the cache if a similar packet is found, otherwise the size of the cache. CTP does not use the internal lookup function LruCtpMsgCacheP.nc. - om_p ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] eetx value doesn't increase for neighbors
On Thu, Jul 31, 2008 at 8:50 AM, Philippe BAYLE [EMAIL PROTECTED] wrote: Hi all, I am working on tinyos 2.x (not the latest CVS release). I am currently doing modifications on CtpRoutingEngineP.nc file in order to choose a parent considering severals parameters such as congestion and energy in extra of ETX. For that I check all the neighbors in the Routing Table built in the file. The problem is when a node is no longer alive ( for example if you move the motes) , it stays in the routing Tableand then it is considered for the choice of a new parent. I guess that the link Etx value should avoid to consider bad link but it doesn't. The link quality must increase in a signifiant way when a neighbor mote die but in fact, towards what I observed, it stays at the same valueThis comes from LinkEstimator component with the eetx value. I know that there was problems about eetx not increasing in the past but I am using the revision 1.6 of this file and it should works so I don't understand at all what happens. Can someone tell me if this is a bug or if the eetx value only increases when the parent (and not a simple neighbor) is lost? The link estimator value will decrease slowly - the estimator might send beacons once every 1024 seconds if the trickle timer has settled at that value and you will need to realize that you have missed a few beacons before you start seeing lower values. But if you send some data packets, the estimator will be updated rapidly. - om_p ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] collection, multiple roots, multiple id's - help
On Thu, Jul 31, 2008 at 4:05 AM, De-MonHell [EMAIL PROTECTED] wrote: hi all. THE EXAMPLE: i have 4 motes: 0,1,3,4 (these are their TOS_NODE_ID) Inside them i have basically the same application that use a single collection with AREA_ID as colllection id BUT: node 0 and 1 have a enum inside them like this: AREA_ID=0 node 3 and 4 have AREA_ID=1 (for every node: i change the AREA_ID, i recompile and finally i deploy) Node 0 and 2 will act as root of the collection service. node 2? You have five motes? Node 1 and 3 will measure the ambient temperature and send it the the leader of their respective area (using the collection sender) so node 1 will send its data to node 0 and node 4 to node 3 I think there is a typo here - is node 3 your root? This is (my) exptected behavior. THE PROBLEM: but this case sometimes work and sometimes not. both temperature nodes sent their data (connecting them to the pc i can see their printf ) node 0 and 2 indeed, sometimes both thei receive the data, sometimes only one of the two. INFO i'm using the tinyos 2 from CVS 4 tmotesky motes i attach the files of the application ANSWER?! am i missing something about the collection protocol? what can i check to understand what is failing? why sometimes work and sometimes not? The argument you pass to CollectionSenderC during its instantiation is protocol id, the dispatch id of the protocol or application running on top of CTP. So, you are not forming two separate/disjoint trees. If you want two disjoint trees, you should run one instance of CTP in one part of the network and another instance of CTP in another part of the network. To do this, you can run CTP on two different AM types. Otherwise, you will have multiple roots in the same network and the packets will go to any or all of the roots depending on the dynamics or topology. - om_p ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
[Tinyos-help] How to produce a 40kHz square wave by a tmote sky?
Hi all, How to produce 40khz square wave on the pin that SCL_CLK? I have overwritten the TACCR0 to make an MSP430 counter overflow interrupt, int the event ,by using the function that port33.setHigh or setLow to produce the square wave. If the TACCR0 is large ,the square wave is good but lager than the frequency than what I want ,If the TACCR0 is small, the port output nothing! Why , and How to do about it to produce square wave whose frequency is 40KHz? My code is that : == module BlinkM { provides { interface StdControl; } uses { interface Timer; interface Leds; interface MSP430GeneralIO as Port33; interface MSP430Timer as TimerA; interface CounterTMicro,uint16_t as CounterMicro; } } implementation { bool state=FALSE; int i; command result_t StdControl.init() { call Leds.init(); call Port33.setLow(); WDTCTL=WDTPW+WDTHOLD; TACTL=0x0216; TACCR0=25; TACCTL0=CCIE; return SUCCESS; } command result_t StdControl.start() { call Timer.start(TIMER_REPEAT,100); return SUCCESS; } command result_t StdControl.stop() { return SUCCESS; } event result_t Timer.fired() { return SUCCESS; } async event void CounterMicro.overflow(){ state=!state; if(state) call Port33.setHigh(); else call Port33.setLow(); } async event void TimerA.overflow(){ } } Thanks. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help