Visual Programming Guide

An overview of available graphical programming software tools. From supported languages to overviews of tools for Arduino and Raspberry Pi.

It wasn’t many years ago that using a computer meant literally learning a new language.

Innovations like the graphical user interface exposed basic elements like the filesystem to a wider audience, and the Internet has become increasingly democratized as user-friendly tools like Wordpress, Youtube and Soundcloud allow anyone to create, publish and distribute content without writing a line of code. Today an explosion of accessible prototyping kits is making it possible for amateurs and hobbyists to sink their teeth into the growing Internet of Things by cobbling together connected computing projects.

But when it comes to making that hardware do your bidding, most tinkerers will still encounter a “language barrier”. Even the most user-friendly development boards need to be programmed; and even the simplest programming languages still look like alphabet soup to the uninitiated.

Fortunately, some developers have started to step in and provide user-friendly, visual programming tools. These platforms abstract away the functions, variables and idiosyncratic syntax rules of the underlying code and give users a simple drag-and-drop interface for building apps out of discrete chunks of logic (“When this happens, do that”) and widgets that can apply settings tailored to any specific piece of hardware.

Here’s a roundup of visual programming platforms that have some application to the Internet of Things—either because they’re tailor-made for programming sensors and embedded computers, or because they’re general-purpose platforms for programming in the languages that are compatible with those devices.

Free / Open Source



“A visual tool for wiring the Internet of Things"

Programs in Node-RED are called Flows, and are built up from premade blocks of code called Nodes. Users drag Nodes onto a workspace (or write their own in a text editor using Javascript), then wire them together to define the logical relationships of a Flow. An extensive online database collects user-created Nodes and Flows to be shared with the rest of the community.

Programming Environment: Browser
License: Open Source - Apache 2.0 license
Project Page: Github
Hardware Support: Raspi, Beaglebone Black, Arduino

More Details

NETLab Toolkit

"Drag and drop the Internet of Things”

The NETLab Toolkit, or NTK, displays its prebuilt chunks of code as widgets — little boxes full of input fields, sliders, toggles, and other on-screen controls. Users choose widgets suited to the task at hand, set the parameters for each one, and connect them together in a logical sequence to create a program. NTK programs are compatible with the original Arduino and similar Linux-based embedded computing hardware. Philip van Allen, a professor at the Art Center College of Design, created NTK as a teaching tool and continues to expand the platform by releasing new widgets.

Programming Environment: Browser

Hardware Support: Arduino, Range of Linux Microscontrollers (Raspi, Galileo)
Project Page: Github

More Details


ArduBlock is a Block Programming Language for Arduino.

"The Ardublock software is a plugin which is added to the IDE of arduino and which allows the user to program in blocks of functions, a little as scracth4arduino, or to appinventor for android."

Programming Environment: Destop Arduino IDE
GNU General Public License
Project Page: Github

Additional: Sparkfun tutorial, Videos

More Details

Scratch for Android

"S4A is a Scratch modification that allows for simple programming of the Arduino open source hardware platform. It provides new blocks for managing sensors and actuators connected to Arduino."

License: Scratch is licensed under GNU General Public License V2 (GPL2)

Additional: Video, Wiki

More Details


"Drag & Drop Programming you can touch”

Programming Environment: Desktop

Hardware Support: Arduino

More Details

Commercial / Enterprise Focused



“Modern Toolsets. One Workspace. Data-Driven. All Yours.”

"DGLux5, our “drag & drop” rapid application development and visualization platform enables individuals and teams to design real-time, data-driven applications and dashboards without ever writing a single line of code. It maximizes analysis efficiency and enables faster communication through real-time, data-driven dashboards for web, desktop and mobile devices."

Additional: Support Doc, Overview Video, Data Source Input

More Details

AT&T Flow Designer

“Unlock the power of your IoT data by prototyping, building and hosting applications with Flow Designer"

"AT&T Flow Designer is an intuitive visual tool that enables you, the IoT developer, to create your prototype, iterate and improve through multiple versions, then deploy your application.

Flow Designer IDE: fully hosted, Node-RED based programming environment with ability to maintain versioning, publish and run solution on AT&T IoT PaaS. 'Do something' with the data, create an application that is ready for end users to consume"

Pricing: Free Developer Account - Pricing page
Additional: Docs

More Details


“A professional tool to build robust IoT applications”

Reactive Blocks is distributed as a plug-in for the Eclipse integrated development environment. Its preprogrammed code blocks are designed around large-scale Internet of Things applications, such as sensor networks, home automation and industrial monitoring. Reactive Blocks also touts itself as an ideal solution for “gateway” applications — programs, running on hardware like wireless routers, that process incoming data from local sensors and devices. These gateway apps can then make decisions without having to pass all of the raw data on to a remote cloud server, a concept known as “edge” or “fog” computing.

Programming Environment: Eclipse

Underlying Code: Java
Hardware Connections: Modbus, Serial I/O, Raspberry Pi GPIO, Berryclip for Raspberry Pi, Gertboard for Raspberry Pi, USB Camera
License: Eclipse Public License (EPL) - Details
Additional: Reference Docs

More Details


"Drag, Drop, Build.”

"Introducing GraspIO part hardware and part software with drag and drop way to program electronics using iPhone, iPad or Android. GraspIO is a smart development board that makes building electronics projects easy, fun and accessible."

Pricing: N/A
Programming Environment: Cloud

Hardware Support: Arduino, RasPi

More Details


“Ideas in real time”

Wyliodrin is a web-based service that aims to be sort of a one-stop shop for easily programming IoT devices. Users can select from a variety of programming languages, then use the visual drag-and-drop interface to build their code. Like Scratch, Wyliodrin’s code snippets fit together like puzzle pieces. The platform is compatible with many popular kinds of prototyping hardware, including Arduino, Raspberry Pi, Beaglebone, Grove, and several Intel products.

Programming Environment: Browser
Hardware Support: Raspberry Pi and Intel Galileo
Price: Free account: uses one board and create 3 applications >> Ultimate account ($50/m): use 250 boards and create 250 applications
Additional: Video

More Details


“The easiest way to create a powerful Internet of Things”

"Visual App is a visual development tool that enables your own or 3rd party hardware, services, data, devices, APIs, protocols and applications to interact easily. They come in the form of elements and act on the same level. Simply drag and drop the elements and make inter-connections to make things play."

Price: Free (with company charging for their hardware device Zenobox)
Programming Environment
: Browser
Additional: Video

More Details

Additional Tools

  • miniBloq
    "An open source graphical programming environment for Multiplo™, Arduino™, physical computing devices and robots."
  • Blocky
    "Blockly is a library for building visual programming editors"
  • RaspLogic
    " RaspLogic is a software that want to make a simple, user friendly and cheap way to control things in every building."
  • Noodl
    "A design tool for interactive experiences"