All project details, including complete instructional series for how to replicate and make FlowIO are provided at

You can also read the research paper, reproduced below as well.

Projects powered by FlowIO:

Intro to Soft Robotics workshop with tips, tricks, and resources:

List of labs doing work with soft programmable materials:

List of relevant review papers in the field:

*** If you are interested in helping with this vision and the broader mission, lets work together! ***

Mission: I believe that access to creative opportunities should be a human right and not a privilege reserved for only those who have the means to afford the tools, resources, and education needed for technological innovation. Some of the most transformative inventions and breakthroughs the world needs may never materialize because the people who may one day make those breakthroughs,  may never get the opportunity to explore a path that would lead them towards those transformative ideas. The world today more than ever ideas and innovation to solve some of the greatest challenges we've ever faced on a global scale. And while talent is everywhere, opportunity is not

My overarching mission is to make technological creativity, innovation, and exploration easier and more accessible to people from all backgrounds through the development of novel enabling platform technologies that focus on emerging fields. I developed FlowIO to enable rapid prototyping opportunities in soft robotics and programmable materials, and to make these fields more accessible to researchers, engineers, makers, artists, and students. Learn more about FlowIO by watching the video above and by visiting the About page. 

Ali Shtarbanov. 2021. FlowIO Development Platform – the Pneumatic “Raspberry Pi” for Soft Robotics. In CHI Conference on Human Factors in Computing Systems (CHI ’21 Extended Abstracts), May 08–13, 2021, Yokohama, Japan. ACM, New York, NY, USA, 6 pages.

Figure 1: (a) The FlowIO platform with all modules.  (b, c, d) Three application scenarios utilizing the small, medium, and large pump modules for (b) wearable, (c) desktop, and (d) hybrid wearable & desktop applications, respectively.


Platform technologies such as Arduino, Raspberry Pi, Lego Mindstorms, and Scratch have liberated entire fields by diminishing barriers to entry. Arduino transformed electronics, Raspberry Pi – portable computing, Lego Mindstorms – robotics, and Scratch – programming. These and similar platforms have not only made esoteric fields more accessible for artists, designers, and makers, but they have also enabled researchers and engineers to prototype more rapidly. For instance, a prototype that two decades ago may have required a small team of engineers and a week of work in a lab setting with expensive equipment to build, today could be done in a weekend, by a high-school student, in their living room! This transformation, I believe, is thanks to: (1) the availability of platforms and tools that are easy to learn and use; (2) the emergence of modules from companies like Adafruit, designed specifically for popular platforms; and (3) a growing community that is continuously contributing software, projects, ideas, tutorials, and other content – inspiring even more people to be part of that community as both users and contributors.

Today, prototyping in soft robotics and programmable materials has high barriers to entry and is as inaccessible to most people as electronics prototyping was two decades ago. This problem exists because the three aforementioned factors that transformed electronics prototyping have yet to occur in the domain of soft robotics. In recent years, projects such as PneUIaeroMorphMorphIOBubbleAuxeticBreath, and numerous others, demonstrate a growing interest in soft robotics from HCI researchers, students, artists, designers, and makers. However, a challenge faced by nearly everyone working on pneumatically actuated projects is that one typically has to build their own driving systems from the ground up and dedicate sometimes most of their time on developing the pneumatics, electronics, and software, instead of developing novel soft actuators, applications, or user experiences.  This challenge creates significant time inefficiencies, stifles innovation, and even discourages the pursuit of ideas requiring more sophisticated drive electronics or software.

Related Works:

While many platforms exist for electronics and computing, platforms for soft robotics and programmable materials still lag far behind. PneuduinoProgrammable Air, and Soft Robotics Toolkit (SRT) are the three most well-known pneumatic toolkit attempts to date. However, they all have large size, limited sensing and control capabilities, and require external pressure and/or power sources, making them impractical for most real-world wearable or complex soft-robotics projects, such as Bubble. The SRT is a DIY solution with off-the-shelf parts. Pneuduino is smaller than SRT, has custom modular hardware, and comes with an Arduino library; however, it still requires external pumps and power sources. Programmable Air provides similar capabilities to Pneuduino while using more affordable parts and integrating the pumps into the device itself. However, the base version has only a single pneumatic I/O port (with the possibility to add more), external high-current power source is still required, and the pumps cannot be changed easily to accommodate different pressure or flow-rate needs. All of the aforementioned toolkits also lack any GUIs and are compatible only with Arduino, making them accessible only to users familiar with Arduino programming.

FlowIO addresses all of the aforementioned hardware and software limitations of related systems. The goal of FlowIO is to be a truly-general-purpose, miniature, pneumatics development platform that is accessible for everyone. FlowIO was inspired out of pure necessity when I was working on project Bubble in 2018-2019, which required a miniature fluidics driver with 5 pneumatic ports, but nothing existed to satisfy that need. This led me on a 2-year quest resulting in over 20 prototype iterations to create the world’s smallest, wearable, full-featured, pneumatics development platform. Continuous feedback from diverse users helped FlowIO become not just a toolkit but a true general-purpose platform technology with both hardware and software, capable of satisfying the needs of nearly anyone working on wearable or non-wearable pneumatics projects, while also being highly user-friendly for both novice and expert users and cross-platform compatible.

FlowIO was designed using a first-principles approach, and is not based on any related platforms. The pneumatic and system architecture is significantly different from the prior works, and was motivated by my familiarity with the challenges and unmet needs in the HCI, soft robotics, and maker communities, as well as the needs of my own future projects.  

FlowIO Overview:

Figure 2: (top) The complete set of FlowIO modules, grouped into 4 categories. This set gives rise to various assemblies as shown by the 9 images below (bottom).

FlowIO was designed using a first-principles approach and was based on my familiarity with the challenges and unmet needs in the HCI, soft robotics, and maker communities, as well as the needs of my own future projects.  FlowIO is a miniature, modular, fully-integrated development platform with 5 pneumatic I/O ports for driving soft robots and other pneumatically-actuated devices.  It is a general-purpose toolkit with modular hardware and full-stack software designed for the needs of researchers, makers, students, designers, and artists working on projects involving pneumatics. FlowIO consists of hardware, software, and community aspect. The hardware modules enable a wide variety of pneumatic applications with pressure ranges from -26 psi to +30 psi and variable flow-rates up to 3.2 L/min. A complete software stack with multiple layers of abstraction includes libraries, firmware, APIs for Arduino and JavaScript, and a web-GUI accessible via the Google Chrome web browser from any device and operating system that supports Google Chrome.

Modularity and reconfigurability are core characteristics of FlowIO. Integrated modules with multiple pneumatic configurations enable a user to configure and reconfigure a FlowIO system within seconds and on-the-fly — to satisfy their project needs for pressure, flow rate, and size — just by swapping magnetically-connected modules. A complete FlowIO device consists of a main module and a pump module connected to each other. Expansion modules and accessories provide additional capabilities for broader range of application. Presently, three kinds of pump modules are available to choose from.  Figure 2 shows the full list of modules and accessories currently in existence. The most important characteristic of FlowIO, however, is the software behind it, which is what makes FlowIO a true platform technology suitable for nearly everyone.  One can control FlowIO in a variety of ways including (1) via a web-GUI that does not require any downloads or installations thanks to web-Bluetooth in Google Chrome, (2) via a JavaScript API over Bluetooth Low Energy, (3) via direct serial commands sent over USB, and (4) via Arduino-compatible APIs by writing custom firmware. Other means of controlling FlowIO are also being developed and scheduled for future release, including via Python, Unity, and Scratch.


The main module (controller) features up to 5 pneumatic I/O ports, each port supporting the actions of inflation, vacuum, release to atmospheric pressure, pressure hold, pressure sense, and flow-rate variability. The main module contains 7 normally-closed solenoid valves in a manifold configuration of which two are for inlet and outlet, and the remaining five for the I/O ports. A pressure sensor is connected directly to the manifold, enabling pressure-monitoring of any channel via time-multiplexing. Integrated is a microcontroller board (Adafruit Feather Sense nrf52840) with Bluetooth low-energy capabilities and a large number of sensors including 9-DoF IMU, altimeter, and light sensor among others. The main driver PCB features a magnetic connector with 4 pins for connection to the pump module, a power button with programmable auto-off timer, and a 14-pin expansion port providing access to I2C, SPI, UART, and analog GPIO pins. A 500mAh LiPo battery is located underneath the valves and is rechargeable via the USB port. The entire main module has a mass of only 77 grams.

The pump module comes in a small, medium, and large version to serve different pressure, flow-rate, or dimensional needs of users. The primary difference between them is the choice of pumps and batteries used. A pump module consists of 2 identical pumps, a custom driver board, and a LiPo battery, all enclosed in a 3D printed snap-fit enclosure (Figure 3). The driver board features power electronics for driving the pumps, a charging circuit with a USB port for easy battery charging, and electronics that support switching between a 3.7V battery source and an external power source up to 24V. The pump module connects to the main module via a 4-pin magnetic connector and via 2 silicone tubes. I made the design choice to have the pump and the main modules be voltage independent of each other, in order to allow virtually any kind of DC pumps to be used with FlowIO, and for users to be able to make their own pump modules using any pumps they desire operating between 3V and 24V. Thus, I also designed the driver board to support input and output voltages between 3V and 24V, and output currents up to 5 amps or more, while being highly power-efficient. The small, medium, and large pump modules weigh 37g, 90g, and 251g, respectively, and their pressure and flow rate specifications are listed in Table 1. 

Figure 3: Exploded view of a FlowIO device with main module and small pump module.

A variety of expansion modules can be connected to FlowIO either via the 14-pin expansion port or wirelessly via Bluetooth Low Energy. Three such expansion modules have been created so far as previously shown in Figure 2, motivated by the needs and requests of FlowIO users. (1) A breakout module exposes the 14 pins of the expansion port and makes them accessible via an electronics breadboard, giving users access to I2C, SPI, UART, and additional GPIO and power pins. (2) A 16-channel analog input module allows a user to connect up to 16 analog sensors to the FlowIO device by using a set of three multiplexers, and also features electronics for signal conditioning. (3) Sensors++ is a standalone module with its own microcontroller and battery that provides 5 additional pressure sensors as well as a variety of other sensors that are on the microcontroller. This module fits underneath FlowIO and operates as an independent system, but can communicate with FlowIO via Bluetooth Low Energy. FlowIO’s main module already provides pressure sensing at any port, but only one port at a time and only when a port valve is open. Sensors++ was designed exactly to eliminate this limitation and to extend the capabilities of FlowIO by allowing parallel pressure monitoring on all 5 ports, independent of the state of the valves. 

Accessories for FlowIO augment its capabilities and enable users to integrate the device seamlessly with their projects or wear it on their bodies. FlowIO was designed as a wearable-first platform, and therefore the enclosure has tabs on the bottom to which a wrist strap can be attached within seconds as shown on Figure 2. The design allows wearability just like a wrist watch, which is especially valuable for assistive applications. Other kinds of straps can also be attached, enabling the device to be worn on the upper arm or leg or be attached to a belt. Additionally, a LEGO compatible enclosure base makes the device easy to integrate with LEGO projects. Moreover, because the enclosure is 3D-printed and the design files freely available on the FlowIO website, users have the ability to modify them and make FlowIO better-suited for their wearable or non-wearable applications. 

Pneumatic Architecture and Configurations:

Figure 4: Pneumatic architecture and all configurations supported by FlowIO.

Figure 4-(a) presents the standard pneumatic configuration of FlowIO. A set of 7 normally-closed solenoid valves are connected in a manifold (shown in green), with the rightmost serving as an inlet and leftmost as an outlet, with inflation and vacuum pumps connected to them, respectively. A pressure sensor is connected to the manifold channel. The standard configuration supports inflation, vacuum, pressure-sensing, pressure hold, pressure release, and flow-rate variability. Moreover, the same pneumatic action can be performed simultaneously on more than one port. The choice of normally-closed valves allows pressure hold to occur by default, and therefore the system can maintain different pressures at different ports even in the off state. While inflation and vacuum rely on the pumps, pressure release is passive and can happen from an initial state of either high pressure or vacuum. The pressure release operation exploits the fact that the pumps allow one-way flow even when not powered. Finally, flow rate variability is achieved by driving the pumps with PWM signals at variable duty cycles. The manifold-connected pressure sensors allow the pressure to be measured at any of the 5 ports, but only one port at a time, as the corresponding port valve must first be opened. For certain applications requiring continuous pressure monitoring on multiple ports simultaneously, this poses a limitation, which is why the Sensors++ module was developed to address that specific need. As shown in Figure 4-(a1), with Sensors++ added, a pressure sensor (shown in red) is available at the output of each port, enabling fully-independent pressure monitoring agnostic to valve state. Besides the standard configuration, FlowIO supports 4 additional configurations, shown in Figure 4-(b,c,d,e), where the pumps can be connected in series or in parallel, and either for inflation or for vacuum. A series configuration achieves higher pressures, while a parallel configuration achieves higher flow rate. For example, if a user only needs inflation and release capabilities but no vacuum, then they can switch to the inflation series or inflation parallel configuration for better performance. Or, if they need only vacuum and release capabilities, they can use the vacuum series or vacuum parallel configurations. Switching between configurations requires only seconds and is achieved by adding the auxiliary tube, while the software libraries and GUI automatically adapt to configuration changes with the push of a button as shown in Figure 6. 

Table 1: Pressure ranges and flow rate specifications for each module and each configuration. Data obtained from measurements

Software Stack, API’s, and GUI

Figure 5: FlowIO Software Stack

I developed the FlowIO software in an object-oriented style and as a stack with multiple layers of abstraction. Each higher layer emerged gradually and organically as a generalization and abstraction of the layer underneath it, with the intent to enable highly versatile, intuitive, and seamless user experience suitable for a vast range of user preferences and application needs. Figure 5 shows all the layers. The Pneumatic driver contains the lowest level methods that control individual pneumatic components – pumps, valves, and pressure sensors. The Pneumatic API is the second layer, which defines the 5 pneumatic configurations discussed earlier and provides abstract methods that control entire procedures involving multiple components, switching sequences, and configurations. The Command API uses a custom protocol that maps all of the functions and methods supported by the Pneumatic API into 3-byte commands. Above that lies the FlowIO firmware which defines 8 custom BLE services with 15 characteristics, enabling complete feedback-based real-time control of FlowIO over BLE. The higher layers of the stack rely on Web-Bluetooth, a new web protocol currently supported on Google Chrome that enables a web page to connect with Bluetooth devices directly. Based on the Web-Bluetooth protocol, I developed a JavaScript API for FlowIO as well as a Web-GUI. This enables a user to interact with the FlowIO device simply by visiting the FlowIO dashboard webpage, and without having to download or install any software whatsoever, making this interaction possible from any BLE capable device and operating system that supports Chrome – Windows, Linux, MacOS, iOS, Android, and more.  The various layers of the software stack give users the freedom to interact with FlowIO in a variety of ways, ranging from interacting with the GUI and using the JavaScript API, to entering serial commands, to writing new firmware using the provided Arduino libraries. Moreover, I am developing additional software capabilities such as P2P web connectivity for remote telepresence applications and plan to add support for Unity, Scratch, and Python.

Figure 6: FlowIO Web-GUI. (Left) An interactive device graphic showing the state and configuration of the connected FlowIO device. The 5 buttons besides the graphic set the configuration; the controls above it select port and activate pneumatic actions. (Middle) A dynamic task schedule allows a user to define and execute a sequence of actions with any number of steps. (Right) A status log showing real-time device feedback. (Top) A tabbed interface allows multiple BLE devices to be connected simultaneously, and each tab has its own set of independent controls.

Community and Deployment

Over a dozen people have used FlowIO, from PhD researchers to high-school students and makers. FlowIO was also used as a teaching tool in a graduate digital fabrication course at MIT. FlowIO has enabled people to develop projects in various categories including interactivity, artistic expression, locomotion, telepresence, haptic feedback, assistive technologies, and more. The various projects made by users are listed on the FlowIO website,  

My goal is to lead FlowIO as a continuously evolving, community-driven project and engage the community in the development process, by enabling others to contribute with suggestions, new modules, software, and accessories.  I am currently building an online-community platform at, where the FlowIO documentation and web-GUI are located, and where people will also be able to post their own soft robotics projects, ideas, suggestions, designs for new modules, and tools for soft programmable materials. The goal is to also allow users to gain visibility for their work and then inspire more makers, artists, and students to unleash their creativity in soft robotics and programmable materials. 

A vision to towards SoftRobotics.IO

FlowIO is just the beginning of my much broader vision called SoftRobotics.IO, aimed at making prototyping in soft robotics and programmable materials just as easy and ubiquitous as prototyping in electronics is today. Pneumatic actuation is just one of several kinds of actuation used in HCI and Soft Robotics. Others include tendon-driven, electromagnetic, hydraulic, thermal, and more. Thus, I am extending FlowIO to go beyond pneumatics, by creating new modules called TendonIO, MagnetoIO and HydroIO. The goal is to offer a single modular toolkit, called SoftRobotics.IO (Figure 8), that supports various kinds of actuation mechanisms, all sharing the same software APIs and GUI. This generalized platform will enable users to effortlessly bring to life nearly any project in the soft robotics and programmable materials domains, be able to go from one actuation approach to another just by swapping a module, and be able to create projects requiring simultaneous use of multiple actuation approaches.

Figure 8: Ongoing and future works towards SoftRobotics.IO

If you are interested in helping with this vision, lets work together!