VIPER: A cross-platform IoT design framework

Some folks from the University of Pisa have come with an interesting idea of creating a cross-platform framework for IoT. The main concept is to use a scripting language (Python in this case) and provide tools to developers so they can code once, deploy everywhere.

VIPER runs on an Arduino Due (SAM3X8E), and can even be ported into the Atmel | SMART Cortex-M7 family. As its creators reveal, code developed on an Arduino Due can also be implemented onto these new MCUs in a matter of a few two clicks. Furthermore, the suite features an Arduino and Spark Proton-compatible, plug-and-play TOI shield.

Simply attach either a Due or Photon to the shield and start playing with any of the VIPER examples found in its library. (This collection of modules includes CC3000 Wi-Fi for Spark Core and Adafruit Shield, Adafruit/Sparkfun Thermal Printer, Adafruit NeoPixel LED, RTTTL smart melody player, Streams library, as well as TCP and UDP network protocols.) Aux ports are even included, enabling the use of other sensors like Grove, ThinkerKit, Phidgets, and Adafruit NeoPixel LED strips.

Through the provided VIPER IDE you can ‘viperize’ your boards by installing on them the VIPER VM. Once viperized, a board is no longer a simple Arduino DUE or Spark Photon or UDOO — now it has a multithreaded real-time operating system running on it, as well as a virtual machine ready to execute your compiled Python 3 scripts.

VIPER supports all the most used high-level features of Python like modules, classes, multithreading, callbacks, timers and exceptions, plus custom hardware-related features like interrupts, PWM, digital I/O, etc.

The VIPER VM provides real hardware independence — you can reuse or integrate your code on different boards and do simulation and debugging on a PC.

I find the concept very interesting and I will follow the team closely for updates and news. If you want to find out more you can support VIPER through their kickstarter campaign!


3 thoughts on “VIPER: A cross-platform IoT design framework

  1. Unless I am missing something this is yet another ‘me too’… Connect a thing to the Internet but not to other things.
    When are we going to see smart things, not just connected things?
    VIPER does not even start to address the phone full of apps problem, it simply adds to it.

    Thanks for the heads up (via your Tweet), but I will keep looking.

    • Hi Ben,

      Thanks for your feedback. Your question (When are we going to see smart things, not just connected things?) is totally valid. Unfortunately, all we see currently is just silos: Providers build IoT platforms and PaaS and offer APIs, while eventually device makers build their own closed-vertical back-ends. No one (with maybe very few exceptions like IFTTT – although it’s still very abstract) connects things to other things and/or services providing something meaningful (other than controlling objects remotely) to users.

      Anyhow, VIPER is not looking at that, they provide an abstract way to code devices, not necessarily connected ones. I see it more as an interesting approach for educational or prototyping purposes, less like an IoT-enabler.

  2. I don’t see it so much as a “me-too” (except for the IDE aspect), but as an “answer to the wrong question” : is the problem that there are many due/spark boards etc. and that their owner wants a java-like-but-python “code once, deploy on both” ? Maybe I am the crazy one, but this is nonsense to me. Can this help me with my Raspberry ? No. Do I have an issue with C ? No. Or with the Arduino IDE ? No. Is there an issue with using Espruino boards when I want Javascript instead ? No. So, what is the issue (seen by real people) they solve again ?

Leave a Reply

Your email address will not be published. Required fields are marked *