DrinkShield Pimped

Open Source Hardware & Art


My Cart (0)

GfxHax DrinkShield

Current Firmware Version: v0.4b


The GfxHax drinkShield is an Arduino shield that converts an Arduino into an Open Source Breathalyzer.  It comes complete with a light bar to show the intoxication levels.  There is a series of 11 lights down one side of the shield that go from green to yellow and ultimately to red.  There are also player ready lights.  Why are there player ready lights?  Well, this is because the shield is not just a standard breathalyzer but can be used as a party game.  With the GfxHax drinkShield you also get a GPL game that lets you play with your friends and keep high-scores!  This software is licensed under the GPL so you can add features and will have unlimited free updates to new versions.

The drinkShield itself is licensed under the Creative Commons license and is free to modifications.  The libraries and source code are licensed under the GPL or public domain.  It comes as a kit and is a really fun starter project to those just learning how to solder.  This kit is specifically designed for hackerspaces around the world.  A hackerspace can host a class and afterwards celebrate by throwing a party!  We offer bulk discounts on the web for classes wanting to buy kits.

A lot of breathalyzers on the market have problems where the sensor fails after a few uses.  This is typically because of a hardware potentiometer to calibrate the sensor.  The drinkShield eliminates this by taking air samples.  This can be controlled easily through the library.  Example:

DrinkShield ds(0,1);   // Drink Shield board version 0.1 defined in object ds
ds.autocalibrate(20);  // Take 20 air samples to determine a baseline

Once the device has been auto-calibrated (Can be called over the serial connection as well) you can simply use ds.getReading() to return a result if one exceeds the determined threshold.  This makes dealing with some of quirky readings with the MQ-3 sensor a snap.  There are also very easy functions for handling the light bar and keeping track of the Highest measurement per blow.  Having the additional player ready lights and sample game code will get you started in developing your own unique uses for this Open Source breathalyzer.  Also see the Coding Details page.

The drinkShield teaches the use of shift registers to control all the lights in the project and is a very easy to assemble board that is very forgiving of first time solderers.

Drink Shield Parts

drinkShield Kit Parts

Drink Shield


Creative Commons License
drinkShield by Craig Smith is licensed under a Creative Commons Attribution 3.0 Unported License.

Purchase a DrinkShield now

For me details on available bundle packages check the products page.

Assembly Instructions

See the detailed tutorial for a list of how to assemble the drinkShield if you are having any problems.

You can also download a PDF version of the tutorial here.


Photo-gallery of the shield.  We would love to see more action shots of the shield in use!  Send images or links to YouTube videos to craig@gfxhax.com.

Example pic to submit:

DrinkShield in Action

Jimmie Rodgers Belt Based drinkShield Design (Brilliant!)

I will eventually setup a flickr feed here to slide show the pictures…

Subscribe to our YouTube channel: GfxHax Channel


Arduino Firmware

You can get the standard firmware to work with the drinkShield and the supported games here:

Current Stable firmware and Arduino Library: Download from google code

Firmware can also be downloaded via subversion:

svn checkout http://drinkshield.googlecode.com/svn/trunk/ drinkshield-read-only

Select Add Library...

Select the latest file you downloaded:

Latest firmware download zip

After that it should appear under example.  Select Standalone.

Select Standalone

Then upload sketch and test you your board!

Manual Install:

After unpacking the firmware, navigate to DrinkShield-firmware-v0.4b//DrinkShield. Copy the folder labeled “DrinkShield” and paste it in one of these possible locations: Arduino/Libraries or Arduino-022/Libraries.  Start Arduino (or restart it if it’s already up). DrinkShield should now be available under the Examples menu.

A standalone example is available via: File->Examples->DrinkShield->StandAlone

Check out the Coding Details page for a list of methods and the communications protocol.

Troubleshooting: http://www.gfxhax.com/drinkshield/troubleshooting/

Game Software


The DrinkDuino software is a gaming interface for the drinkShield, written by GfxHax.  It has been written with portability in mind.  The current versions are designed and tested first on Linux.  Once stable they will be ported to other platforms.  DrinkDuino uses the SDL library for graphics and SQLite3 for its database information.  DrinkDuino will work with any devices that can talk the DrinkShield protocol.

DrinkDuino Splash Screen

Splash Screen


  • Multi-Platform
  • Written in C++
  • Supports Multiple Drink Shields
  • SQLite3 database for easy integration into other apps
  • Designed to work at parties

For more information on DrinkDuino check out the page here.  DrinkDuino Main Page