WyoLum Innovation Grant 2013 entry – openSip+Puff

Added on December 30, 2013

About this page

The following is my application for the 2013 WyoLum Innovation Grant, which provides funding for open-source projects to help them become real products. I am seeking the grant to bring my open-source “sip and puff” device, openSip+Puff, to market!

If you’d like to support me in this process, you can vote for my entry by giving me a “+1” on this Google+ page!

Application documents

Choose one:

  • _X_ WyoLum may post my project publicly
  • ___ WyoLum may not post my project (This will result in disqualification)

Public repository URL

Proposal video:


openSip+Puff is a low-cost, open-source “sip and puff” computer interface that allows users to perform keyboard and mouse actions using their breath alone. A clear vinyl tube connected to a pressure sensor is held in the user’s mouth and allows the user to “sip” (negative air pressure) or “puff” (positive air pressure) on the tube to trigger activity on the circuit board. The openSip+Puff connects to any computer using a standard USB cable and acts just like a USB keyboard and mouse, with no drivers necessary!


Traditionally, “sip and puff” interfaces are considered assistive technology and are used for relatively simple purposes such as wheelchair control and very basic computer actions. However, they generally suffer from a number of issues that are common in the commercial assistive technology field, including:

  • Artificially inflated costs due to lack of competition and high demand. Commercial sip and puff interfaces can cost hundreds or thousands of dollars!
  • Proprietary (and usually outdated) hardware and software, forcing users to forgo system upgrades and limiting overall usability.
  • Lack of clear and intuitive documentation.
  • Limited functionality, partly by design and partly due to lack of support for the electronics or software hobbyists.

By leveraging the power of open-source hardware and small-scale manufacturing I believe I can address all of these issues!


openSip+Puff is not exclusively intended for individuals with mobility impairments, but can be used by anyone who is interested in an alternative (or supplemental) computer interface. You can use openSip+Puff in scenarios where your hands are already being used (such as gaming, coding or making music), or as a fun way to perform complex keyboard and mouse actions using your breath. Furthermore, the technology allows for the sip and puff interface to be used both as a digital device and analog input! Usage examples include:

  • Simple keyboard and mouse interfaces for individuals with mobility impairments (single keystrokes/mouse buttons or combinations).
  • Keystroke combinations for easy native application shortcuts or custom keystroke launch commands, such as:
    • New tab in a web browser (Ctrl + T) or change tab (Ctrl + Tab / Ctrl + Shift + Tab).
    • New window (Ctrl + N).
    • Select different tools in programs like Gimp, Inkscape, Photoshop and more.
    • Launch a program through command prompt in Windows with Ctrl + R and Enter.
    • Open and operate keystroke launcher like Launchy or Apple’s Quicksilver with custom key commands like Alt + Space.
  • Scrolling up and down any document (long files of code, web pages, grant proposals, etc.) to help prevent hand strain.
  • Gaming applications such as firing a weapon (left mouse click), jumping (space), changing weapons (Q/E/number keys), reloading (R), running/crouching (Shift) and more.
  • Raw access to the actual analog value of the pressure sensor, so you can have more fluid control in your own projects through a simple USB serial connection.
  • (Planned) MIDI control that translates the analog values of the pressure sensor into MIDI notes, velocities and control change commands.

Here is a video I made of me using the openSip+Puff to do common actions on my computer, like switching windows and launching programs:

  1. Electronics:

    Microcontroller: The openSip+Puff uses the ATMega32u4 flashed with the Arduino Leonardo bootloader, which means that it shows up on your computer as a native USB HID device (keyboard or mouse) without any drivers necessary! This USB connection also allows for new Arduino sketches to be uploaded, as well as serial data to be exchanged without disrupting the USB HID functionality.

    Pressure sensor: An MPX12GP pressure transducer is interfaced with an analog input of the ATMega32u4 through an instrumentation amplifier, which produces a voltage that rests at around 2.5V, fluctuating up and down based on positive and negative air pressure on the transducer.

    I2C interface: For electronics hobbyists, the openSip+Puff PCB includes an 4-pin I2C interface (VCC, GND, SDA and SCL) so that you can actually tap into the processed analog data stream from the pressure sensor, so you can control other electronics boards with breath control!

    ICSP interface: The openSip+Puff PCB also includes a 6-pin ICSP interface so you can flash entirely new firmware onto the ATMega32u4, such as new bootloaders or custom programs written with AVR Studio.

  2. Firmware:

    The firmware I have written for openSip+Puff takes care of all the “hard stuff” that translates the analog voltages from the pressure transducer into discrete “sip” and “puff” events, even allowing for multiple levels of activity such as “soft sip” or “hard puff”.

    The user will only ever have to give the firmware a “command” that it is expected to execute that associates events from the pressure sensor with actual keyboard or mouse activity. The syntax of these commands will be thoroughly documented so that users can manually configure their device in code if they want to.

    Every command is stored in the ATMega32u4’s on-board EEPROM, so that even when the user unplugs the device and moves it, it’ll still function exactly the same way when you plug it back in!

  3. Desktop software:

    I am currently working on a simple desktop configuration tool (written with either Processing or openFrameworks) that will allow users to connect to their openSip+Puff and configure its behavior through a friendly GUI. The software will connect to any connected openSip+Puff device and let you visually reconfigure the behavior of the device depending on what you need.

How far along is the project right now:

  • _X_ Concept
  • _X_ Printed circuit board developed
  • _X_ Enclosure designed
  • _X_ Algorithm tested
  • _X_ Key components identified
  • _X_ Key components tested
  • _X_ Functional breadboard prototype
  • __ Available for sale
  • __ Other (please describe)

How far along will the project be after 6 months if this project is selected to receive the grant:

  • _X_ Concept
  • _X_ Printed circuit board developed
  • _X_ Enclosure designed
  • _X_ Algorithm tested
  • _X_ Key components identified
  • _X_ Key components tested
  • _X_ Functional breadboard prototype
  • _X_ Available for sale
  • _X_ Other (please describe):

A desktop program so users can reconfigure their openSip+Puff’s behavior without having to do any programming. Also, I will try my best to generate thorough documentation that anyone can use to get up and running quickly.

Plan and Timeline (Break up the project into tasks and milestones with a timeline):

  1. Convert remaining PTH parts (except pressure transducer) to SMD to make manufacturing easier.
  2. Research logistics of using Seeed Propagate.
    • Getting parts to Seeed?
      • Vinyl tube? USB cable?
    • Packaging?
    • Customer experience.
      • How will they buy product and have it shipped to them?
      • Returns and defects?
    • How much will the end-user need to do to get device working?
    • What about enclosures?
  3. Begin manufacturing process through Seeed.
    • Purchase parts and send to Seeed (?)
    • Wait for assembly process to be completed. How long?
  4. Promote and demonstrate the openSip+Puff to raise awareness.
    • Blogs and communities like Hackaday, Make Magazine, Adafruit, Arduino.
    • Assistive technology communities (to be researched).
Rough timeline:

The timeline can be roughly visualized using the following Gantt chart:

Since I have never used Seeed Propagate before I’m not sure how long the manufacturing process will take. As I learn more, this chart will become more and more precise.

How would the funds be used if this project is selected to receive a grant?

The funds will be directly and used to fund a small manufacturing run of 100 openSip+Puff devices through Seeed Studio’s Propagate service as discussed above.

An early analysis of the costs involved shows that $2,000 would be a nearly perfect amount for funding a run of 100 openSip+Puff boards manufactured in this way:

A complete bill of materials (BOM), along with further cost can be found in the following document: https://docs.google.com/spreadsheet/ccc?key=0Al6LhSMEWCGidHVHRjhYemJvOEd6OWxlejJBdVdybGc&usp=sharing

PDFs of the quotation I received from Seeed Studio’s Propagate service can be found here:

How can WyoLum support your project outside of financial backing?

WyoLum’s experience with small-scale manufacturing (specifically with Seeed Studio’s Propagate service) would be immensely helpful for getting this project completed. Because I have strong experience with hobbyist-level electronics assembly and PCB fabrication, I am confident that I can carry this project to completion with the grant funds. However, WyoLum would be an invaluable resource for me to help me get through the process efficiently and smoothly.

Additionally, WyoLum’s reputation, visibility and influence within the OSHW community and beyond would be hugely helpful for raising awareness about the openSip+Puff to ensure a return on investment, and generate a higher demand than what I could have achieved as a solo Maker.

On a personal level, as I come close to finishing my M.S. Ed. degree (in May 2014) I am looking at how to transition from being a student to being a professional Maker. I’d love to be able to make a living from my work and my interests, whether that means developing and selling products, writing about projects, teaching workshops and classes or building exhibits for museums and events like Maker Faire and Burning Man. The only way I can make that happen, however, is to connect with people who can give me opportunities, which I feel WyoLum may be able to do.

Brief Bios and Backgrounds

Project Leader: Jason Webb

Currently I am finishing up my M.S. Ed. in Instructional Technology at the University of Nebraska at Kearney, where I spend almost all of my free time exploring a creative synthesis of contemporary technology (OSHW, digital fabrication, creative coding, etc.) with other disciplines like art. I have a B.Sc. in Computer Science and extensive experience with programming, hobby-level electronics, 3D printing and much more. For more information about myself and my work, please explore my site!

Recent projects or relevant hobbies of team members:

  1. Eyewriter 2.1 – actively working on updating the popular (but almost obsolete) Eyewriter open-source eye-tracking. My contributions so far include a modular 3D-printable hardware platform and a more standardized (and more easily manufacturable) electronics system.
  2. BacKey for MaKey MaKey – a helpful “backpack” for the MaKey MaKey to make prototyping easier for education and assistive technology contexts.
  3. Traditional “lost wax” casting technique applied to generative 3D printed objects.
  4. Actively collaborating with local glassblowing artist to create interactive optic effects with LEDs and sensors.
  5. Designed and taught a class for undergraduate Computer Science students entitled “Interactive and Generative Art”, with public exhibition for the students.
  6. SurfaceMapperGUI – simple open-source projection-mapping system to introduce the technology to my university’s Theatre program.
  7. Scripts and documentation to produce 3D-printable molds from 3D models, along with casting tips.
  8. Scripts for generating 3D-printable embossing, intaglio and stencil plates for traditional printmaking processes (used in undergraduate printmaking curriculum).
  9. “Jar of Fireflies” kit, a soldering kit for beginners. Planning to use crowd-funding to begin production in 2014.
  10. Built two multi-touch surfaces for my university’s Computer Science department as an undergraduate.

OSHW references

This project was inspired by a failed “sip and puff” Arduino shield called Sip’n Puff Ipod Dock by Bob Johnson. His device was clearly aimed at the competent electronics enthusiast, and lacked many features that prevent it from being a usable piece of assistive technology.

The only other open-source “sip and puff” project that I’ve come across is this “Arduino Controlled SIP & PUFF Switch” (http://www.instructables.com/id/Arduino-Controlled-SIP-PUFF-Switch/), which must be hand-built from a variety of tubes and valves. It can only output digital electrical signals whenever a “sip” or “puff” is detected. No analog values are possible.

I am constantly inspired by the OSHW community in general and am an avid reader (and occasional participant) of:

  • Adafruit
  • Sparkfun
  • Instructables
  • Make Magazine
  • Hackaday
  • Evil Mad Scientist Laboratories
  • Seeed Studio