VIPER the Python developing solution for Core and Photon

I recently developed with other colleagues VIPER (Viper Is Python Embedded in Realtime)
VIPER is an easy to use development suite for the high level design of interactive objects ready for the cloud and the IoT.
With VIPER creatives, designers and professionals can develop in Python for Arduino DUE, Spark Core and Photon, UDOO and similar boards using paradigms and features typical of PC and mobile programming.
Unlike other solutions on the market, VIPER is cross-platform and compatible with all sensors and kits.

VIPER is now live on Kickstarter, for more info


Just backed this! Very excited to try the shield and play with the python threading on the photon :slight_smile:



COOL! ave you seen the Spark Core viperizing video? VIDEO Viperization :sunglasses:

1 Like

The Electron is amazing. It has the potential to revolutionize the IoT paradigm.
With other colleagues I recently developed a Python programming suite for Spark boards that is also compatible with the Electron.
We believe that hardware is important but software still remains a huge bottleneck of IoT and embedded design.
Developing interactive projects and objects in single thread C is very hard and usually impossible to most of designers and creatives.
We are working hard to fill this gap!
Have a look at VIPER here
As you can see VIPER is already compatible with Core, Photon, Arduino, Udoo and STNucleo! We are just waiting to receive our electrons to add them to the family of supported boards!
Help us to do this!

VIPER will be released on June 24th ready for the Core. Photon porting will be ready in one month.
info at


Hi Particles fans.
The Viper team is proud to announce that Viper is ready to be downloaded from
Please try it with your Particle Core and let us know.


Photon support released!
Photon is now Viperizable!



@floyd I was unsuccessful in getting VIPER to work. When I connected my Photon to my iMac, and launched your IDE, it showed my Photon in the device list, and said that it was viperized, even though I never clicked the viperize button. When I tried to flash some sample code to the Photon, I get an error message which said it couldn’t find the virtual machine (which makes sense). When I put the Photon into DFU mode to viperize it, it no longer shows up in the device list. After getting it out of DFU mode, and running normally, it now doesn’t show up in the device list any more. Any suggestions?

1 Like

Hello Ric,

I’m the main developer behind Viper. Can you please post your issue in the troubleshooting section of our forum (together with mac version you are using)? You can login with the user you created from the IDE (if you did create one).

In brief: you see “Photon (Viperized)” because the board detection algorithm is cross-platform and windows lowers the standard :expressionless: of usb recognition. It’s in my todo-list to change the algorithm to give a better experience on Mac and Linux. As for the DFU photon not showing…let’s see what we can come up with.

1 Like

Version 0008 is out!

A lot of new features have been added (in order of coolness):
- An Exception Debugger and a Bytecode Explorer. The console can now recognise printed exceptions and with a click of the mouse the exception traceback is shown. If you don’t use the Viper IDE console for debug, don’t worry: just copy and paste the exception text in the exception debugger and you will get the traceback. All of this, at the cost of just 8 more bytes per Viper thread.
- The Viper App! Go get it here and start playing with the Core and your Android device
- Core Wifi. The Particle Core wifi module together with the CC3000 drivers for Adafruit shield and breakout boards.
- Sockets. An almost BSD compliant socket implementation will let you write compact scripts to access the internet.
- HTTP. The first version of Viper requests module is ready, with a basic but very easy to use implementation of the http protocol
- JSON & MsgPack. Serialize and unserialize your objects
- Udoo Board support! yes! thanks to all the users who provided invaluable feedback.
- Hardware timers and advanced PWM. The hwtimers module provides a non-polling sleep with precision in the microseconds. And the pwm module now provides a blocking version of the pwm.write that produce exactly the amount of pulses you decide.
- Infrared. Pwm, icu and hwtimers are used together in the infrared module to code and decode infrared signals. Go play with the TOI shield!
- Servo motors. A module for servo motor controlling coupled with an animator module (an abstract and easy to use frame interpolator) f
- SPI. A module to handle spi communications with sensors and actuators directly from Python.
- Uplinkable resources. You can now create html, json, txt, bin files and save them together with the bytecode on the board flash. Open them from Python as read-only files!
- Virtual boards. You can now compile your scripts without a board plugged in

…and I probably forgot something :slight_smile:

See you soon with the Photon wifi drivers and I2C

1 Like

Here we are again with a new update 0009 is out!

I am pleased to announce that we finally have support for the Photon Wifi driver!

All you have to do to use it is:

from drivers.bcm43362 import bcm43362 as bcm
from wireless import wifi


and then you can use sockets, http, network scan and even select! You can find additional info in the docs and you can also clone a few examples (under drivers). Additionally, every example based on the CC3000 can be used with the Photon by changing the import of the driver, the network interface remains the same (cool, isn’t it?).

One important note (and the reason for the delay in the update): Broadcom drivers are closed source, a developer can get them but can’t distribute them. Therefore Broadcom drivers are included in a precompiled form (as a C library). The good news is that now Viper can dinamically link against object code

There are also some bug fixes here and some minor improvements.

As usually, please help us improving Viper by reporting bugs and issues with the update.

Thank you all from the Viper Team!


Hi all, @floyd and @Giacomo,

I’m have an electrical background and I’m a software developer, but I’m new to Particle/Arduino and I’m currently undertaking a Udacity Artificial Intelligence Nanodegree where we program in Python. The course leader has encouraged students to explore the Arduino space.

I was thinking of purchasing a starter kit comprising of the Particle Photon with a Particle Shield Shield, but before I made the leap I discovered it was only programmable in C.

I searched the web and got really excited when I discovered the VIPER Kickstarter campaign, and I was thinking of backing the Pledge $50 for Access to the first VIPER release and community forum + 1 TOI Shield, but then I realised the proposed release date was way back in June 2015, and even today (Feb '17) there are still advertisements requesting support for the VIPER Beta product (I don’t mind if it’s still in Beta, I just want to get my hands on one! :smile: ).

I wanted to get it along with a Particle Photon and use the Zerynth IDE/Middleware with it so I can program in Python 3 applying AI-agent algorithms that I’m learning.

  • Where does it advertise the current version of VIPER that has been released so far?
  • Is it still possible to purchase a VIPER TOI Shield? Does it ship to Australia?

Viper became Zerynth. The Photon and Electron are supported by Zerythn IDE/Middleware (search their site!). They don’t seem to sell the TOI Shield so you should contact the company and ask.

1 Like

Hi Luke,

I’m Luigi, member of the Zerynth team

I confirm you that the TOI Shield is absolutely not mandatory for using the Zerynth suite with your Photon. It was created to speed up the adoption of the suite after our Kickstarter campaign with a ready-to-use set of sensors and libraries, but it has never been mandatory for using our software.

You can program your Photon and other supported boards in Python with Zerynth Studio, and many libraries are available for different sensors and actuators. (Take a look at the Library section of our doc)

The production of the TOI Shield is for the moment suspended. You could try to ask if they can put it in stock again



the Viperization Vids are not available in the Youtube-Channel!
Update: found it here:

@lfcerf @floyd


I have successfully virtualized my electron with Zerynth. I tried the “GSM HTTP” example code that is given. I have changed APN as per my SIM card, but it shows an error at the line g350.auto_init() as below:

Something bad happened HardwareInitializationError at line 28 of main
raised at line 38 of ublox.g350.g350.auto_init
raised at line 55 of ublox.g350.g350.init

What am I doing wrong?
I am also not able to find out the library for ublox g350 in python. Where can I find it?


@djs07, you should be asking this on the Zerynth support forum.


Hi guys,

here you can find a topic and more info about this issue.


1 Like

Today I got this Zerynth Announcement in context the licensing: