Hi Guys, Fastserial doesn't provide faster communication, it's just using much less blocking (atomic) segments, so it doesn't mess up important interrupts. This is very useful when you want to use it as a really fast basestation. You can turn it on with the fastserial extra (e.g. "make iris fastserial").
You can also try to increase baudrate with the PLATFORM_BAUDRATE constant in the makefile. I'm not sure about the telosb, but the ucmotes usually works well with "CFLAGS+=-DPLATFORM_BAUDRATE=500000U", probably even better than with 115200, because the RFA1's clock generator can generate round numbers better than "traditional" badrates with the integral oscillator. I never really used the flash with serial dumping, but I used radio downloading a lot (again, on ucmotes, but probably every stm25p based mote is similar): Flash was always significantly slower than the radio, which works at theoratical 250kb/s rate, but it has at least 10% overhead, probably more. Your original problem was with printf: You don't know if it finished the communication, or not. On top of that, I think printf does the numbers to ascii conversion on mote. With AM, you eliminate the conversion overhead, and you know you can send the next message when you received the sendDone event. So, long story short: use AM, I don't think you'll need anything else. But you probably want to add a sequence number or address to every package, so you can check for data loss. If there is data loss, you'll also need some kind of ack (probably AM's ack is trustable on serial as well, but I'm not sure). Don't forget to turn off every other serial communication (e.g. debug printfs). Using the UART directly can work, but it's a bad idea: You'll probably need framing, escaping, CRC, and so on: You'll end up with a new serial stack, which is very similar to the current. Oh and one more thing: The default maximum payload is 28 byte. This is mostly because RAM: every message_t allocates 28B+overhead. On serial, the overhead is around 10B, so basicly you have about 25% overhead, which is a lot. You can increase it with the constant TOSH_DATA_LENGTH. I think the physical maximum on radio is 114B (the maximum message length is 127B, but you have headers and footers). It's unlimited on serial, but usually 100 or 110 is a good value. Andras Biro http://ucmote.com On Mon, Sep 1, 2014 at 11:39 AM, Ugo Maria Colesanti < colesa...@dis.uniroma1.it> wrote: > I think you will manage to do everything with the standard serialAM stack, > but just in case, have a look to tos/lib/fastserial which should be a more > efficient serial interface than the standard one (i never used it). It > should support both, ucmini and telosb. > I think it can be re-wired to serialAM. You can also consider to write raw > bytes directly on the uart without the serialAM stack ahead. > Bye, > > > Ugo > > > 2014-09-01 11:24 GMT+02:00 Alessandro Sivieri < > alessandro.sivi...@gmail.com>: > > >> On Mon, Sep 1, 2014 at 11:08 AM, Ugo Maria Colesanti < >> colesa...@dis.uniroma1.it> wrote: >> >>> How big is your flash? What hardware are you using? >> >> >> I'm using the telosb and the ucmini, the former with 1MB flash and the >> latter with 2MB. I think I will try the active message this week and see >> how it goes. >> >> >> >> -- >> Sivieri Alessandro >> alessandro.sivi...@gmail.com >> http://sivieri.wordpress.com/ >> > > > _______________________________________________ > 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