9 ms·
Contiki: The Little-Known Open Source OS That Rules the Internet of Things
- davidw 12y agoSo what kinds of things are people actually using this for here? Anyone doing something interesting with it?
- maguirre 12y agoI am currently working with a startup company developing controls for solar water heating system, commercial lighting/climate control/monitoring and finally monitoring for large conventional water heaters - exciting i know ;) -.
- noir_lord 12y agoI'm writing a system to take the Solar Thermal (and other technologies) UK installation standards and automate a lot of it, Bureaucracy as a Service ;). Where in the world are you, I'm in the UK.
- maguirre 12y agoI am in the US, get in touch with, We could collaborate maguirre at automatid com
- RottenCoder 12y agoI'm really unimaginative and can't picture what kind of hardware we are talking about? What kind of controllers/processors, what type of periphery etc.
- maguirre 12y agoAtmel AVR micros for the nodes and an ARM SBC to run Linux on as the border router for the controllers As far as the peripherals are concerned temp sensors/light sensor/humidity sensor for monitoring. For control mostly our own hardware Relay or PWM output to control/dim ballasts or LED fixtures etc
- stinos 12y agoSuported hardware: http://contiki-os.org/hardware.html http://contiki-os.org/hardware.html. Lot of major players in there it seems.
- diafygi 12y agoIs there an equivalent of a terminal in Contiki?
- INTPenis 12y agoI love this, I remember back when Adam Dunkels came up with this and feeling proud that he was from Sweden. Here's a quote of his I kept with me from those days, paraphrased. When I program I always try to code as if I'm writing for a PDP-11. So no wonder he made such compact C code for the C64.
- MrBuddyCasino 12y agoSlightly OT, but I'm constantly amazed what swedes manage to pull off, considering their small population size they have a lot of impact.
- nickbauman 12y agoTheir government pays people to write free software.
- jgeorge 12y agoThe platform I learned to develop on was a very small cellphone; learning to live in tight resources is a skillset that sadly not enough people practice. Even today on much larger systems I still out of habit minimize code and resources more than I need to.
- INTPenis 12y agoI was never forced to write like that but I have the same habit of wanting to minimize the resources I use and the dependencies.
- arethuza 12y agoCan anyone recommend hardware for trying this out? I'm tempted to get a Redwire Econotag II....
- maguirre 12y agoIf you are in the US, I'd say that's one of the best bets. Although it's a little expensive I think it's one of the best supported platforms.
- damian2000 12y agoThe Econotag II is $65 - http://www.redwirellc.com/collections/frontpage/products/econotag-ii http://www.redwirellc.com/collections/frontpage/products/eco... - do you need their router to do anything useful with this?
- maguirre 12y agoif you want to be able to get your data out into the web then the answer is: yes
- deleted 12y ago[deleted]
- fit2rule 12y agoArduino is pretty workable. Add shields, off you go .. See this: https://www.youtube.com/watch?v=OSTGMvvjDHE https://www.youtube.com/watch?v=OSTGMvvjDHE
- swah 12y agoI don't quite understand how helpful an OS like this is in the kind of programs you write for the Arduino (say a single loop or timer acquiring temperature and publishing via radio). And if you're using something bigger, like a Raspberry Pi, you would use Linux anyway. (But people are using it, so it must be useful. I just don't imagine the kind of applications...)
- maaarghk 12y agohttps://www.youtube.com/watch?v=OMzgp7xTp1k https://www.youtube.com/watch?v=OMzgp7xTp1k Some example of Contiki running and browsing the internet on 20 year old hardware with 64k of ram (Apple IIe)... video is a few years old but still impressive. I think I want to try and get this running on some atmel hardware just for fun :)
- ldite 12y agoNote that it's got a pretty good emulator, with a VM image to get you up and running fast: http://contiki-os.org/start.html http://contiki-os.org/start.html (ironically a 1GB download for a Micro-OS) The emulator lets you do interesting things, like experimenting with mesh networking, that would require quite a lot of hardware to try for real. (Plus it's a lot quicker than flashing 15 nodes every time you make a bugfix!)
- arethuza 12y agoYeah - that emulator looks amazing. But dealing with large scale enterprise application in my day job I was struck with the desire to have a wee physical device (or devices) to play with - and the small scale of Contiki really appealed.
- pling 12y agoI bought a calculator for that (HP 50g) then found it had 1700-odd pages of manuals and reference information!
- yellowapple 12y agoI saw that; it looks incredibly excessive. If the emulator runs as a Java app, is it really not enough to just download a .jar and run it on whatever OS I happen to be running on my workstation? Or are there so many custom dependencies and configuration requirements that such an approach is infeasible? They could probably shave that footprint down considerably if they didn't bloat it with an Ubuntu VM.
- zokier 12y agoYou can just download the source package and do a simple `ant run` if you just want the emulator. Initial build took less than 15 seconds on my machine and didn't require any extra user action. The Instant Contiki package also includes toolchains for several platforms, which probably is the biggest value it provides.
- SwellJoe 12y agoThe last time I read about Contiki, all of the screenshots were running on a C64. And it looked awesome! It made me want to play with it on my C64. The current website is all boring network simulation stuff. Looks like a corporation. But, I'm happy to hear Open Source continues to make inroads into the embedded space. There's billions of devices out there that sometimes people's lives depend on running a terrifying array of proprietary and unmaintained software that is potentially broken in subtle (or not so subtle) ways. Edit: Here's all the stuff about ports to a variety of awesome hardware: http://hitmen.c02.at/html/tools_contiki.html http://hitmen.c02.at/html/tools_contiki.html
- stinos 12y agoproprietary and unmaintained software that is potentially broken in subtle (or not so subtle) ways You almost make it sound like proprietary per default is or can be broken while open source is not, that's a bridge too far :P Don't forget that big companies like TI make money of both the hardware and the software (Code Composer Studio IDE which is used for pretty much all there DSPs etc) and do put lots of effort in making everything run properly. Anyway, bugs are everywhere.. Anecdote: I have used CCS for years while not encountering any problems at all, while in the same timespan I used open source toolsets I did find some bugs. Then again, same timespan in using other closed source toolsets there wre bugs as well so there's no clear winner imo.
- mkesper 12y agoIt's about who has got the knowledge and is in control: the manufacturer or you, the user. That's what Free Software is about. http://fsfe.org/about/basics/freesoftware.html http://fsfe.org/about/basics/freesoftware.html
- SwellJoe 12y agoThe leap I was assuming everyone here would be able to make is that if a device is running broken Open Source software, it can be fixed. If the software on it is proprietary and the vendor has discontinued support or no longer exists as a company, the device will be broken forever. In the embedded space, a system may run for decades...that's plenty of time for a company to go belly-up, or be acquired, or any of dozens of other outcomes that lead to the source code for the device being lost to the sands of time.
- jortiz81 12y agoIt's interesting to see that Contiki is taking the lead in this space, since it was once going toe-to-toe with another open source OS for wireless embedded networked devices, TinyOS. TinyOS had a large following in the research community and I believe it was used in several commercial sensor network deployments by Dust Networks and Arch Rock and at least one other Korean startup company -- that i believe is still using it in their deployments. Adam Dunkel has done a nice job of pulling Contiki from the obscure research community and into the commercial space and is riding the "internet of things" wave right now. We'll see if it lasts. I'm not familiar with what developments have taken place on their OS since maybe 2010 or so.
- ldite 12y agoI think a major factor is that TinyOS is written in nesC, so to bootstrap it on a new device you first have to get the nesC compiler ported, then get the OS working. Contiki, meanwhile, is written in fairly vanilla C.
- fdkz 12y agoOutput of the nesC compiler is one big C-file, so no problems there.
- perone 12y agoLittle-known ?
- bigbugbag 12y agoPlease remove the facebook tracking snippet from the url before posting on HN.
- dang 12y agoThanks. We removed it.
- joshstrange 12y ago>> Contiki will soon face competition from the likes of Microsoft, which recently announced Windows for the Internet of Things [0]. But while Microsoft’s new operating system will be free for devices less than 9 inches in size, it won’t be open source. And Contiki has an 11-year head start. What? Why even mention windows here, these two OS's aren't even close to being in the same category other than they share the price tag of "free". I'd like to see windows try to run in under 128mb let alone the 1mb for linux or the mere kilobytes need for Contiki. A windows mention here seems very out of place. [0] http://www.wired.com/2014/04/free-windows/ http://www.wired.com/2014/04/free-windows/
- freehunter 12y agoYeah it's not really Windows for the IoT, it's Windows for semi-embedded.
- pjc50 12y agoIsn't that Windows CE?
- adventured 12y agoNo, Windows CE doesn't exist any longer. CE has become Windows Embedded Compact; and there is a Windows Embedded Standard as well (stripped down components of the desktop OS, if I recall). http://www.microsoft.com/windowsembedded/en-us/windows-embedded-compact-2013.aspx http://www.microsoft.com/windowsembedded/en-us/windows-embed...
- damian2000 12y agoAgreed, though Microsoft is trying to push into the area of IoT - I believe part of their plan is to be a vendor of the backend cloud services, running on Azure.
- gedrap 12y agoWell, it's Wired. You shouldn't be surprised, as it's how the do it all the time :)
- sieve1234 12y agoI am unsure about this. It's big advantage is its size and that it does not require as much HW support like Linux (like a MMU). The disadvantage is that it's not a *nix and you loose the whole ecosystem (no Posix). In my opinion the space that it occupies (the "Internet of Things"), is not well-defined and it may be probably cheeper to use something like a full-blown small computer (like the rasperry-pi) with Linux on it.
- peterwwillis 12y agoThe "Internet of Things" is marketing fluff, like "information superhighway". What they mean is "we want to charge you for more shit with silicon on it so we made up a new term". Raspberry Pi is waaayyyyy too big [and pricey] for devices that are nothing more than a sensor and a gprs module.
- damian2000 12y agoNot if you're a hobbyist developing the stuff for your own use though? Aren't the dev kits for this hardware more expensive than a Raspberry Pi + WiFi dongle?
- sieve1234 12y agoI doubt that. I know there is research in sensor network (e.g. at my university) and they say they want ulta-small low-power devices but the experiments I have seen were never in need of that much small devices. Of course there are applications were you want to go really low-power/extra-small, but in that case even a micro-controller capable of running Contiki OS is too big. What I want to say is, that the application space where you can't deploy a small machine with Linux on it BUT it is feasable to have a small machine with Contiki on it is pretty narrow.
- retSava 12y agoI guess there's always some wiggle room on most deployments. However, where I used to work, some of the guys at that department were conducting research on flying foxes as their migration patterns southern to northern parts of Queensland (Australia) were pretty much unknown (IIRC). The requirements there gets pretty tough. Also, the power consumption becomes a major factor as it will limit the amount of useful work the device can do, ie sensing, communication etc. Anecdote: I learned about another project where they studied opossums. They put a collar with a small wireless device around their necks to track their movements and habits, but couldn't understand why a disproportionate amount of opossums died for some reason.... The reason was that the device had a small red LED that would blink to indicate that it was working, and the opossum, being a nocturnal animal became quite visible in the night, to the joy of all predators :) :S
- deleted 12y ago[deleted]
- ausjke 12y agoThis is well known in IoT field I assume, I used it a few years back, after comparing with tinyos and such. Basically you have Linux, then FreeRTOS, then Contiki, from large system to the tiny devices.
- kqr2 12y agoBased on this embedded systems survey [1], FreeRTOS is actually quite popular. http://www.freertos.org/ http://www.freertos.org/ [1] http://www.eetimes.com/document.asp?doc_id=1322014&print=yes http://www.eetimes.com/document.asp?doc_id=1322014&print=yes
- Cuuugi 12y agoI wonder about name liabilities with the other famous Contiki. http://www.contiki.com/ http://www.contiki.com/
- qbrass 12y agoIt worked out okay for Python.
- thelucky41 12y agoI'm using this wonderful operating system for my own sideproject for LED juggling props. Aside from the strong hardware support and large community behind it, Thingsquare has recently released it's slides from their training classes on Contiki that give an excellent overview. Porting an already existing platform to my own custom hardware has been relatively painless compared to Linux or an RTOS, though it is difficult to make Contiki's makefile based workflow work well in an IDE. Cooperative protothreads are surprisingly easy to work with, and the IP/mesh networking stack is highly configurable at each layer. Combined with an excellent overall code quality, this is the very first open-source project I've ever really wanted to get involved in.
- hoprocker 12y agoThose props sound interesting! Are you embedding the LEDs and circuitry in the juggling apparatus itself, or putting them in some stage props?
- dragonbonheur 12y agoThe part I'm interested in for now. It will be fun to have it running inside a C64 emulator on a $50 Android tablet http://contiki.cbm8bit.com http://contiki.cbm8bit.com