About JanOS

JanOS

Turn your phone into an IoT board

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.

See video from JSConf.eu

Why?

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.

Read more on our blog

Getting started

  1. Get a mobile phone from our supported device list
  2. Get a ready-made build, or build your own
  3. Clone our app template and write your first program
  4. Run make reset-phone to update the device
  5. When all is up and running, screw open your device and remove the mainboard
  6. Build the mainboard into something else
  7. PROFIT!

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.