JanOS is an operating system designed to run on the chipset of mobile phones. It runs without a screen, and allows you to access all phone functionality, from calling to the camera, through JavaScript APIs.

Current development boards for Internet of Things solutions have one big problem: they are very expensive. Boards like the Raspberry Pi or Arduino have a limited feature set and simple extensions, like a GSM shield, can cost $80. That is a shockingly high price when a full smartphone can be available for just $30. Why not break out the mainboard from a mobile phone and use that to develop embedded projects? Cheaper and more powerful.

FAQ

Can I attach sensors or LEDs? Most phones have some GPIO ports that you can use to attach extra electronics to the board, like a LED light. We wrote a blog post describing the process of attaching and controlling a LED on the GeeksPhone Keon.

Does it run native code? You can compile any C/C++ binary for the ARM architecture using the Android NDK / toolchains, and use the mozOs.exec API to invoke the binary from JanOS. Here's an example.

What about power efficiency? This depends on the mobile phone you use as a base. General idle consumption over 2G is 5 - 10 mA per hour. You can use a digital USB ammeter to measure the actual consumption. Read more here.

Do I need a battery? So far all phones we encountered need a battery connected for most things (booting, searching for WiFi networks, etc.). It's quite easy to solder a battery to the board though. If you use soldering wire you can position it behind the board without much hassle.

Is there a debugger? You can use the WebIDE, which is part of the Firefox Developer Tools to connect to your device and debug it.