Contiki | 1 Feb 01:00 2010
Picon
Picon

Announcing the Contiki Projects Community

A lot of people are using Contiki, developing software for Contiki, testing new protocols or mechanisms
with Contiki, porting Contiki to new platforms, and extending Contiki with new functionality. To allow
such Contiki-based projects to be accessible to all Contiki users, we have set up a new SourceForge
project for new Contiki-based open source projects, dubbed the Contiki projects community
(http://sourceforge.net/projects/contikiprojects/) We already have a number of projects, such as an
RSSI viewer for the Tmote Sky
(http://contikiprojects.svn.sourceforge.net/viewvc/contikiprojects/sics.se/rssi-scanner/),
an IPv6 adaptation of the uAODV code
(http://contikiprojects.svn.sourceforge.net/viewvc/contikiprojects/siemens.de/uaodv/), a
TFTP server (http://contikiprojects.svn.sourceforge.net/
 viewvc/contikiprojects/siemens.de/tftpd/), a RESTful web server
(http://contikiprojects.svn.sourceforge.net/viewvc/contikiprojects/sics.se/RESTfulContiki/),
SafeContiki (http://contikiprojec
 ts.svn.sourceforge.net/viewvc/contikiprojects/cusat.ac.in/safe-contiki/), an experimental
version of Contiki with compile-time safety checks, and more
(http://contikiprojects.svn.sourceforge.net/viewvc/contikiprojects/). Interested in getting
involved in the Contiki projects community? Read on for details.

URL: http://www.sics.se/contiki/news/announcing-the-contiki-projects-community.html

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
Adam Dunkels | 1 Feb 22:41 2010
Picon
Picon

The Contiki Projects Community

Hi all,

you just saw the email that was automatically posted because of the 
announcement on the website about the Contiki projects community. (For 
those that did not see it, look here: 
http://www.sics.se/contiki/news/announcing-the-contiki-projects-community.html) 
But I just wanted to send a "real" email about it too.

The purpose of the Contiki projects community is to collect all the cool 
Contiki-based projects that are out there, in a central location so that 
they are accessible for everyone. This helps those that want to learn 
more about Contiki, because there are more examples available, but it is 
also a nice advertisement vehicle for new Contiki projects. In addition 
to being a place to distribute, store, develop, and advertise 
Contiki-based projects, it is my hope that the discussion list will be a 
vibrant place to discuss the projects in the tree.

We already have a number of cool projects in the source code tree, but 
we would like to have even more! Do you have a Contiki project that you 
would like to have included in the Contiki projects community? Great! 
See here for the process of getting developer access: 
http://www.sics.se/contiki/news/announcing-the-contiki-projects-community.html

I hope that this will be a great asset to us all: developers, users, for 
those who are just interested in the technology, and ultimately for 
Contiki itself!

Take a look at the projects that are already available and strongly 
consider submitting your own project and become part of the Contiki 
projects community!
(Continue reading)

Adam Dunkels | 1 Feb 23:22 2010
Picon
Picon

Re: The Contiki Projects Community

Hi again,

just remembered that I forgot to say this in the first mail: a secondary 
purpose of the Contiki projects community is for it to act as a 
"breeding ground" for code that is to be included into Contiki itself.

/adam

Adam Dunkels wrote:
> Hi all,
> 
> you just saw the email that was automatically posted because of the 
> announcement on the website about the Contiki projects community. (For 
> those that did not see it, look here: 
> http://www.sics.se/contiki/news/announcing-the-contiki-projects-community.html) 
> But I just wanted to send a "real" email about it too.
> 
> The purpose of the Contiki projects community is to collect all the cool 
> Contiki-based projects that are out there, in a central location so that 
> they are accessible for everyone. This helps those that want to learn 
> more about Contiki, because there are more examples available, but it is 
> also a nice advertisement vehicle for new Contiki projects. In addition 
> to being a place to distribute, store, develop, and advertise 
> Contiki-based projects, it is my hope that the discussion list will be a 
> vibrant place to discuss the projects in the tree.
> 
> We already have a number of cool projects in the source code tree, but 
> we would like to have even more! Do you have a Contiki project that you 
> would like to have included in the Contiki projects community? Great! 
> See here for the process of getting developer access: 
(Continue reading)

Abhijit Pandey | 2 Feb 17:33 2010
Picon

dynamic linking x86

Hi,

I am trying the following approach on my Ubuntu PC for dynamic loading.

In a contiki process I do...

fd = cfs_open("/home/user/hello-world.ce", 1);

  err = elfloader_load(fd);
  if(err == ELFLOADER_OK) {
    printf("codeprop: starting %s\n", elfloader_autostart_processes[0]->name);
    autostart_start(elfloader_autostart_processes);
  }

I applied patch to elfloader.c similar to Wouter and using elfloader-x86
	} else if(s.st_shndx == rodata.number) {
	  sect = &rodata;

The loader is able to relocate the sections and find autostart_processes.
However it has null at the location so
elfloader_autostart_processes[0]->name does a Segmentation fault.

If somebody can help me to debug why contents of ( process = (struct
process **) find_local_symbol(fd, "autostart_processes", symtaboff,
symtabsize, strtaboff)
does not contain meaningful information.

or if I am missing something.

Thanks,
(Continue reading)

Adam Dunkels | 2 Feb 19:19 2010
Picon
Picon

Re: sky-ip/sky-webserver example

I *finally* managed to find this problem, six months later!

The problem was that the Tmote Sky web server reset the TCP connection 
without any data being exchanged. The reason was that the Tmote Sky web 
server in examples/sky-ip/ is configured to read the flash file system 
to find its files. I fixed the problem by rewriting the web server so 
that it sends a list of files (with clickable links) when the requested 
HTML file is not found (and no notfound.html is found either).

I have committed a fix.

/adam

Abhijeet Kumar wrote:
> 
> Hi, thank you for your response. I'm connecting to the node, running the 
> webserver, plugged into my PC.
> 
> Yes, I tried tcpdump on the connection and it turns out, the connection 
> gets reset after the initial handshake :-
> 
> 12:59:20.483520 IP 172.23.213.47.40037 > 172.16.2.0.80: S 
> 2487083956:2487083956(0) win 5840 <mss 1460,sackOK,timestamp 1215118 
> 0,nop,wscale 6>
> 12:59:20.498061 IP 172.16.2.0.80 > 172.23.213.47.40037: S 0:0(0) ack 
> 2487083957 win 60 <mss 60>
> 12:59:20.498147 IP 172.23.213.47.40037 > 172.16.2.0.80: . ack 1 win 5840
> 12:59:20.498342 IP 172.23.213.47.40037 > 172.16.2.0.80: P 1:49(48) ack 1 
> win 5840
> 12:59:20.529950 IP 172.16.2.0.80 > 172.23.213.47.40037: R 1:1(0) ack 49 
(Continue reading)

Renato Spiandorello | 2 Feb 22:58 2010
Picon

Re: 6lowpan compatibility test with other OS

Hi, I'm preparring my 6lowpan tests between sku with Contiki and sky with 
TinyOS to verify fragmentation and compression compatibility.

First of all I'm testing how to activate fragmentation and different 
compression modes, with 2 mote the first with uip6-bridge and the second 
with example-ping6 (with fixed icmp destination IP).

With the following default paramenters in contiki-conf.h, ping6 from linux 
works fine from 56 bytes to 82 bytes icmp payload:

#define SICSLOWPAN_CONF_COMPRESSION    SICSLOWPAN_CONF_COMPRESSION_HC01
#define SICSLOWPAN_CONF_FRAG                     0

With any other combination of the 2 paramenter, I receive no reply from the 
mote with example-ping6.

Does uip-bridge utilize paramenters different from contiki-conf.h ?

Are there other parameters to modify to activate fragmentation and 
compression ?

thank you in advance

greatings

----- Original Message ----- 
From: "Adam Dunkels" <adam@...>
To: "Contiki developer mailing list" 
<contiki-developers@...>
Sent: Friday, January 29, 2010 10:32 PM
(Continue reading)

azadeh abdolrazaghi | 3 Feb 11:07 2010
Picon

mobile phones and sensor nodes

Good day everybody,

Has anyone tried to connect a sensor node to a mobile phone or PDA with cable?

Thanks
Azadeh

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Contiki-developers mailing list
Contiki-developers@...
https://lists.sourceforge.net/lists/listinfo/contiki-developers
Adam Dunkels | 3 Feb 13:15 2010
Picon
Picon

Re: the event-driven core and Protothreads

Hi,

the terminology can be a bit tricky, especially since it is not always 
due to logic but sometimes due to historical reasons. Here is the 
terminology:

* The kernel: implemented in sys/process.c. It posts events to processes.

* The core: this is used in several places to mean different things. In 
the Contiki source code world, the Contiki core is the code in the core/ 
directory. This is the code that runs on several different platforms and 
supports several different applications (as opposed to the code in 
platform/, cpu/, and apps/). The the dynamic linking world, the core is 
the part of the system that is resident and cannot be dynamically loaded.

* Protothread: a lightweight execution context (which is independent 
from Contiki).

* A Contiki process: A Contiki entity that is represented by a struct 
process. It has a name, an event-handling function, and a protothread 
state. The event-handling function is always implemented as a 
protothread. To make things nicer, the protothread functions are wrapped 
in equivalent process functions.

To understand the structure of Contiki, it helps to understand the 
history of Contiki.

Back in 2002, when I first started contemplating Contiki, I envisioned 
it as an event-driven kernel that would pass events to and from uIP, and 
to and from applications running on top of uIP. When I started 
implementing this, the first file I wrote was ek.c (which stands for 
event kernel). This worked very well and was the central component of 
Contiki for the full 1.x series.

In 2004, after having worked way too much with event-driven code in C, 
Oliver Schmidt and me came up with the notion of protothreads to make 
things easier for the programmer working on top of the event-driven 
kernel (see the original announcement, which has a lot more background 
as well as our initial discussions around the concept [1]). We (or 
atleast I) initially saw them as being used for uIP applications only, 
where the need was most apparent. But sometime along the road towards 
Contiki 2.x, we saw it fit to base the entire process concept around 
protothreads.

Today Contiki processes are protothreads, but with a name and an 
event-handling function. ("Bare" protothreads are also used throughout 
the code, particularly in device drivers.)

I hope this answers your questions - if not, feel free to keep 
discussing. The replies are sometimes delayed, but it is only because 
there is too much fun work to be done and too little time :)

/adam

[1] Original protothreads announcement: 
http://sourceforge.net/mailarchive/message.php?msg_name=1095757445.563.6.camel%40strumpa.sics.se

Alexander Bernauer wrote:
> Hi,
> 
> I have been reading the Contiki source code [1] in order to find out
> how the event-driven OS core works.
> 
> The short story is, that the following questions came up:
> 
> - is core/sys/process.h what is commonly refered to as the event-driven
>   core of Contiki?
>     - if yes, why is this core implemented in terms of Protothreads? 
>     - if no, what is the event-driven core instead? 
> 
> - what is the big difference between the process and the protothreads API? 
>     - who is supposed to use the PROCESS macros instead of the PT macos?
> 
> 
> The longer story is:
> 
> I think the interface to the event-driven core is core/sys/process.h
> because events are registered and dispatched there. There is also the
> code which calls Protothreads functions and and acts upon the return values
> such as PT_WAITING. It seems as if this is the runtime environment
> within which Protothreads live.
> 
> What confuses me, though, is the fact, that the process layer is
> implemented by means of Protothreads, as most of the PROCESS macros are
> defined in terms of Protothread's PT macros. So, if I had to draw the
> architecture of Contiki, the Process layer and the Protothreads layer
> would depend on each other. I would have expected that Protothreads are
> an abstraction layer on top of the event-driven OS core.
> 
> What confuses me more is the fact, that the PROCESS macros seem to offer
> the same functionality as the PT macros. There is a BEGIN, an END, a
> PAUSE aka. YIELD and a WAIT. I would have expected that the event-driven
> core only manages a queue and dispatches events from there to arbitrary
> handlers.
> 
> So, my assumptions are wrong. No big deal, but I want to make sure I
> didn't miss anything. That's why I would apprechiate any answer to my
> posed questions. Hopefully they are not embarrassingly trivial...
> 
> thanks,
> regards
> 
> Alex
> 
> [1] contiki.cvs.sourceforge.net:/cvsroot/contiki co contiki-2.x 
> 
> 
> ------------------------------------------------------------------------
> 
> ------------------------------------------------------------------------------
> The Planet: dedicated and managed hosting, cloud storage, colocation
> Stay online with enterprise data centers and the best network in the business
> Choose flexible plans and management services without long-term contracts
> Personal 24x7 support from experience hosting pros just a phone call away.
> http://p.sf.net/sfu/theplanet-com
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Contiki-developers mailing list
> Contiki-developers@...
> https://lists.sourceforge.net/lists/listinfo/contiki-developers

--

-- 
Adam Dunkels <adam@...> | +46 70 7731614 | http://www.sics.se/~adam/
Book: Interconnecting Smart Objects with IP - http://TheNextInternet.org

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
Klaas Thoelen | 3 Feb 17:04 2010
Picon

ApplicationRadio interference

Hi,

I'm trying to test a networking protocol in COOJA using application level motes. 
  When I run my simulation the radio is (rightfully) interfered on a few nodes, 
since multiple nodes in its range are transmitting to it. This causes the 
isInterfered-flag to be set to true in ApplicationRadio, and remain true for the 
rest of the simulation.

Is there any way however, to turn this flag to false again and make use of the 
radio again after a while?

I can see a way to do this by faking a signalReceptionEnd() and some more, but 
that obviously is not the way to go I think.

Cheers!
Klaas

--

-- 
Klaas Thoelen
IBBT - K.U.Leuven - DistriNet
Email: klaas.thoelen@...
Phone: +32 16 327668

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
Fredrik Österlind | 3 Feb 17:32 2010
Picon
Picon

Re: ApplicationRadio interference

Hi Klaas,

The radio medium should clear the interfered flag when all nearby nodes 
have stopped transmitting (indeed via signalReceptionEnd()).
Or are you directly interfacing the radios without a radio medium?

There was a bug in ApplicationRadio fixed by Joakim Eriksson end of 
January ("fixed interference in app radio"), so consider updating to the 
latest version.

Best,
Fredrik

Klaas Thoelen skrev:
> Hi,
>
> I'm trying to test a networking protocol in COOJA using application level motes. 
>   When I run my simulation the radio is (rightfully) interfered on a few nodes, 
> since multiple nodes in its range are transmitting to it. This causes the 
> isInterfered-flag to be set to true in ApplicationRadio, and remain true for the 
> rest of the simulation.
>
> Is there any way however, to turn this flag to false again and make use of the 
> radio again after a while?
>
> I can see a way to do this by faking a signalReceptionEnd() and some more, but 
> that obviously is not the way to go I think.
>
> Cheers!
> Klaas
>
>
>   

--

-- 
Fredrik Österlind <fros@...>, +46706641502

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com

Gmane