Introduction: Game O Verre ! Play With Your Glasses ! [DIY Version]

About: Young designer interested in hacking, 3D printing, interactive design and games !

The "Game O Verre" (GOV) is a new kind of game controller, it allow you to play games with your favorite action : Drinking !

How does it work ? It's easy !

  1. Build your own Game O Verre set (this Instructables will help you for)
  2. Install your GOV on your favorite glass
  3. Connect to the electronic
  4. Play !

The GOV will detect and tell your games when a player is touching his glass, and more interesting, when his lips get in contact with the liquid inside !

The Game O Verre is a project I'm working on since a few time and take a lot of research and development. It may look very simple but to get this version, a lot of versions have been build, a lot of cup sacrificed in the name of science, and a lot of liquid drink for testing purpose !

The version I share today is already ready to play, but I intent to continue working on it to improve it be able to produce and release a final "box version" within a few month.

The launch of it will be done on a Kickstarter campaign and if you are interested by the project you can already sign up to the Prefundia page to be noticed early when the campaign will start. (I just started it, will be a work in progress until the end)

The Game O Verre is awesome for your parties with friends, making the family Sunday quiz less boring, help you to seem cool and trendy at the girl you like and also help making eat their soup to children !

It's working with almost all liquids ! (except maybe distilled water or pure oil... but we don't drink this very often)

But... It's not because you can play with it, that you have to. In all occasion be reasoned and responsible and never force someone to drink something he doesn't want, we are here to play and have fun.

The final version will be awesome, everything assembled with a high quality ribbons (great fabrics, awesome prints, elasticity, technical conductive wires, designed and manufactured in France etc...) with an dedicated electronics especially designed for the game. Do not forget to sign up on the Prefundia if you are interested. ;)

Ps : I will continue update this page adding new contents, games, bug fixes and also more pictures and video of some playing session with it.
Ps2 : I entry 3 contests, do not forget to vote if you liked the project. Let's brave the water and win this contest ! :p

Step 1: Bill of Materials

For making five Game O Verre you will need, I make a wishlist on Adafruit that reference most of the elements you will need. The rest should be easy to found on electronic or hardware shops.

Tools :

  • One large sewing needle
  • A solder iron
  • A 3D printer (you can ask a FabLab or on 3DHubs)
  • Scissors, some pliers, limes and a lighter
  • A multimeter can be nice for testing

Wires :

  • 4 Jack 3.5mm male male stereo cable. (between 1 and 2 meters long, the softer the cable is, the better)
  • 1 USB mini to USB (the longer, the better)

Electronic :

  • 1- Teensy LC electronic board
  • 5- Female 3.5mm Jack
  • 5- Leds of various color with their resistor
  • 5- Push buttons
  • 1- Etched board circuit board of the project
  • 2- 14 pins 2mm pitch female headers
  • 2- 14 pins 2mm pitch male headers

Miscellaneous :

  • Some foil tape (aluminum pref)
  • Some classic sewing thread
  • Some conductive sewing thread (about 5 meters should be enough)
  • A bit of tin for soldering
  • 5- 40mm long, 30mm width slack segment

  • 5- Cylinder 3.5mm female jack

Step 2: Prepare the Ribbon

Introduction :

The ribbon is the part that will be fixed on the glass to make the contact with the player hand.

This ribbon need to be prepared with conductive wire in order to be able to detect the electronics signals variations on it.

For the ribbon preparation you will need :

  • A large needle
  • Scissors
  • A lighter and a little candle
  • 5- Fabric ribbons of around 35-40 cm long and 3cm width.
  • Some conductive wirer that you can sew.
  • One small bottle of "Stock-Stop" or similar.
Tip : You can use old grocery bags handles as ribbons, they are usual sized between 35 and 40cm and 3cm width or more, just what we need ! You can just unsew them from the bag using small scissors and then use it for making your Game O Verre.

Sewing time !

  • For start, cut your ribbon the right length.
If you have enough ribbons, I advice to cut them a bit longer a start (40-45cm) and try, if the ribbons are too longs, it's much easier to cut them smaller than the inverse.
35cm will be good for the 25cl glasses, then, if you have a longer ribbon, you will be able to fix it on larger glass.
I prefer straight cuts, it's easier to make the sewing on after but you can also make one straight cut for the buckle side, and an bevel one to the other.
  • If your are using synthetic ribbon, I advice, with a lighter and a little candle, to "burn" the end of the ribbon, this will melt the end of the ribbon threads and prevent it from fraying.
You can make it directly with lighter but if you making all the ending at the same time, the candle will save you a lot of gaz and avoid you a few fingers burn. (speak from experience)
  • Once your ribbons are cut, it's time to sew the conductive wire on it. I usually make two straight lines on the exteriors edges of the ribbon but it can be the shape you want, as long as it cover enough surface. Two zigzag pattern could be nice too.
The ribbon will have two side, the one in contact with the glass (back), and the one in contact with your hand ( front), try to make smaller points on the back (2/3mm) and bigger on the front (6/7mm).

I'm not a pro sewer and it's not the purpose of this Instructables neither, If you want more tips for the sewing I advice to take a look to this other Instructables :

After reading this other Instructables, prefer use some "Running Stitch" (or even some "Back Stitch" if you are patient enough).
Keep in mind that your conductive wires need to be connected each other, so if the wire broke or something, assure you the new thread is touching the previous one by making a hitch for example (you can use a multimeter to be sure).

Check the picture and draws for more details of how the ribbon should look like.

Step 3: Prepare the Buckle


The buckle will be the link between the conductive ribbon and the jack wire. It will allow you to keep the ribbon firm on your glasses and to connect your Drinkey Drinkey to your electronic.

For the buckle preparation you will need

  • A solder Iron
  • Pliers
  • 3D printer to print the buckles (or use a Fab-Lab or a service like 3DHubs)
  • Some aluminum foil tape
  • 4 cylindrical female jack 3.5 stereo connector
  • 1 meter of thin electric wire, prefer solid core
  • Some heat shrink sleeve

3D Print the buckles !

You will have to wisely choose the file you print ! Depending of your ribbons width and the jack connector shape, the file will be different. Take a look to the illustration to make you choose.

Print the file corresponding to your ribbon width and Jack shape.

No need for special settings nor supports (you will probably have to make little cleanup but nothing important).

If their is some missing shape for cylindrical female jack, please let in comment a picture with detailed size, I'll try to complete as I can.
I'll try to make a Thingiverse customizer for the buckles files soon.

Game O Verre printed buckle by LeoMarius on Sketchfab

Prepare the jack connector

  • You will need to solder the wire that will be the liquid probe on the jack.

For this one I advice to use a solid core wire of about 15/20cm. At the end of it you can denude a length of about 5cm that will be in contact with the liquid.

You need to solder this wire to the tab connected to the jack tip / left channel.
Usually, on the females jack cylinder connector, the left channel tab is round, and the right is square (and coper), so solder on the round one.
  • Once the wire is solder on the jack, use some heat shrink sleeve to isolate it well and avoid short contacts.
Using a multimeter, you can check the connections are good using the contact detector or ohmmeter mode. Set a jack wire on the connector, the sleeve should be connected to the Jack ground (the first ring) and the wire to the jack tip (the last part)

Prepare the buckle

  • Start by cleaning the 3D print, remove the plastic excess and clear the little hole on the bottom with a pliers and limes.
  • Prepare then the area where the jack cylinder will be clip. Cut a rectangle of adhesive aluminum foil of about 7cm large and with the same hight that your ribbon.
  • Gently install the foil tape all around the Jack socket as on the pictures.
Use as much as possible only one piece of adhesive foil, the adhesive on can be isolating and block the signal. If your adhesive is not large enough, try to make all the parts in contact with the Jack connector sleeve. (see schemes)

Assemble the buckle

  • You just have to put the jack wire throw the hole designed for it on the buckle, and clip the Jack connector on the socket.
You can check again the connections with a multimeter, be sure the contact between the Jack sleeve and the aluminum foil is good.

Once your five buckles are ready you can continue to the next step for more sewing !

Step 4: Assemble the Buckle and the Ribbon


On this step we are going to make the liaison between the ribbon and the buckle, it's very important to make it well and tight to assure a good signal liaison.

You will need

  • The needle again
  • Some classic sewing wire
  • The prepared ribbon
  • The prepared buckle

Install the ribbon on the buckle

  • As seen on the picture, let the ribbon enough length (4cm~) to make a solid stitch in cross.
Prefer to have the top side against the buckle to have the anti adhesive side on the top. This will help to lock the ribbon once in place.
  • Make a solid stitch to keep the ribbon on place, starting on the top close to the buckle, I do the first length , then I'm making the rectangle to firmly keep the ribbon in place. To finish, do not hesitate to make 3 or 4 stitching line, trying to make the sewing as tight as possible.
If everything fine, the ribbon still should be able to turn around the buckle, but the ribbon should have a firm rub on the buckle.

Step 5: Prepare the Electronic (PCB Version)


The electronic is a key part of the Game O Verre, it's the link between your glasses and your games, it's the element emitting and reading the signals needed for the games.

With the computing of those signals, the electronic will be able to know when any player is handling his glass and when he's drinking on it.

It can then react by using the leds on it, for stand alone games for example, but also emulate a keyboard to be able to communicate with various devices without any drivers to install.

The electronic board have been designed with 123D circuits and is based on a Teensy LC for the computing part.

You will need

  • A solder iron with some tin
  • Pliers
  • 1- Teensy LC board
  • 1- GOV Elec PCB
  • 5- 3.5mm stereo female jack connector
  • 5- 12mm push buttons
  • 5- 3mm Leds of various color with adapted resistors
  • 2- 2mm pitch 14-pin male headers
  • 2- 2mm pitch 14-pin female headers
  • 1 long USB micro cable

Get the PCB

The printed circuit board have been designed with 123D Circuits, you can show it and download the files here :

Once you have the files you can order the board to the manufacturer of your choice or build it yourself using this Instructables :
You can only use the back layer, the path on the front layer have just been made for testing purpose.

Prepare your board

  • Start by soldering the male headers on the Teensy board.
For the soldering step, you can refer to this other Instructables :
  • Identify resistances needed for your LED's
For the LED resistor you can refer to this Instructables : You just need to know that the Teensy LC is using 3.3V to power the leds.
For the female pin header, to keep them aligned when you soldering, you can use male pin header to keep it still, solder a few points and then remove it. Do not solder where the males pins are, you could block them in. (just like I did with my first PCB)
All the components are show on the PCB, just do not mistake with the led direction, the flat side always on the exterior, at the opposite of the resistor. For the rest, no way to make mistakes.
You can solder the buttons and the led on the back of the board if you want, will look different but work the same.
  • Once everything is soldered you can test the contacts with the multimeter following the schematics.

All the hardware is in place now ! Let's jump to the code !

Step 6: Prepare the Program


The program will define how the electronic is working, this is very important to make it good in the way our electronic to me more precise and efficient.

For example their is some detection threshold programmed, feel free to make adjustments and tests.

You will need

  • Arduino IDE software
  • Teensyduino software add-on (careful, it may not be compatible with the latest Arduino IDE version)
  • The assembled electronic with the Teensy-LC board on
  • A micro USB cable

You can directly download the program here :

Upload and test the program

Once your board is ready

It's possible that Teensyduino may not be compatible with the latest Arduino version, check before to make updates.
  • Connect the electronic to your computer
If the Teensy is new, the on board red led should be blinking
  • Open the Arduino IDE and open the linked file :"gameOVerreTeensyAlpha01.ino"
  • Verify the settings for the Teensy

On the "Tools" menu, you should have "Board: Teensy LC" and "USB Type: Serial + Keyboard + Mouse + Joystick"

  • Press the "Verify and Compile" button.
The program will check is the program is fine (I have verified it already so it is) and compile it for the Teensy. If it say "Done compiling" it's all good, if it's "Error compiling" you should check the settings again and verify you have the same I have.
  • Press the Upload button to load the program on the electronic.
The teensy should reboot by itself and load the program on it.

If the last step goes smoothly, we can go to the next step to understand how the program is running.

Step 7: Understand the Program


The version I'm sharing today is still a "Work in progress". I think it's already developed enough to be shared with you today, play and having fun with it, but it's not as stable and reliable as we could wait a commercial version to be.

But lucky you, the code is open and shared with you, that's why it's important to know how the electronic is actually working and how you can intervene on it to make corrections and adaptations based on your actual uses.

You will need

  • Nothing more than in the previous step !

This all step is only theoretical, I will describe point after point how the electronic software is working for you to understand how to be able to make clever changes on it if needed.

Code study

The variables declaration

First step in my code is to declare all the variables I'm using.

It's mostly integer numbers defined by the prefix "int" or "boolean" (true or false).

Some of them are followed by " [5] " : This mean that I'm not creating only one value, but a char, that will have 5 different values, in my case, one for each players.

Notice one exception, the declaration of "int keyboardKeys[5]" is not fill by numbers as the prefix "int" let us guess, but by "KEY" elements, those elements are special and identified by the system as integer numbers (a little particularity).

Each entry is representing a key on a keyboard, no need for particular knowledge to understand that KEY_A mean "Keyboard key A" etc... But be careful, this is affected by your "keyboard layout" on the "Tools" settings, if your system is setup on azerty and the keyboard layout on "US", the "KEY_A" will give you a "Q".

The others interesting variables

"int seuilJack[5]" : It's defining the initial threshold of the hand detection of the ribbon, this will be soon replaced by a automatized function but for know you can act on it to define your basic setup.

"int sencibilitee" : This integer is defining the minimum variation, based on "seuilJack" to consider the ribbon have been touched. The lower it is, the more sensitive the electronic will be, but the risk of having false positive is higher too. A basic level is between 1000 and 2000. Soon the software will be updated to make this variable unique for each player.

"int sencibiliteeBouche" : Exactly the same as the previous one but to detect the mouth contact, the threshold is higher. Usually this threshold is not even needed, with most of the player the mouth contact should give the hightest value possible, but with rares players a lower value can be interesting. Avoid to make it to low of limit the false positives results. 5000 is a nice preset.

"int keyboardKeys[5]" : As we already see, this char is used to define the keyboard key the electronic will emulate on the mouth contact. Feel free to change them if you need some special settings. You can find a char of all available keys on this page :

The setup

Nothing very interesting here, I'm just starting the serial communication, and defining the pin I'm using on the electronic board based on the variables above.

The Loop !

Here we start the real business ! The loop is the place all the code will be read... in loop !

Once the electronic finish to read the loop code, it start again.

My loop is build on an other loop, the "for" function.

"for (int i = 0; i < 5; i++) { ...almost all my code...} "

This mean, that when the electronic is reading this code for the first time, it's creating the variable "i" and give it the value "0", read the code between the hooks, and when it finish this code, it add 1 to the i value, "i++" mean "i=i+1", and it start again as long as i is inferior to 5. And then it continue with the rest of the loop and start over and over...

On my code this for loop with a 5 entry each time could be read in human language "for each of my ribbons do this { instructions... } "

Let's continue !

The first two lines of this loop are getting the actual states of the electronic, on the buttons and on the capacitive sensors using the "digitalRead" and "touchRead" functions.

And once I get those values I'm making comparisons with the thresholds I defined using conditions "if" and "else" to update my boolean used to define if my ribbon is touched, and if the liquid is touched too.

I'm using the same method with the buttons to define is they are pressed or not.

You have now have the boolean "ribbonTouch", "liquidTouch"and "buttonPressed" updated on every loop for every players. And you have to know that the loops are made more than 50 times every seconds !

Here it is for the basics, you should now be able to -more or less- understand how all of this is working.

For the rest I'll let you take a look on the code and joined me on the next step to see the basics mode I already build and how to use them.

Step 8: Game Modes and Functions


The game modes are defining how the electronic will react to the different actions, sending keyboard key on a sip, blinking led in particular order etc. The functions are little block, that can be called anywhere in the code to make a precise task depending of the variables we give it, it's making easier the creation of other game mode without having to recode everything every time.

For now three games modes have been made for the electronic, everything is still in progress, more game mode are about to be developed and more functions too.

The game modes

To switch a game mode to an other, you just need to press 3 times in a row the button of the game mode, first button is for game mode 1 etc. (I'll add a blinking feedback soon to show what game mode you are activated)

So far I have developed three games modes, the default one is a testing mode, it simply turn on the led of the ribbon we are touching, and make it blink if we take a sip.

The second mode is the keyboard emulation, it's acting just like the testing mode but when we take a sip on the glass, the electronic is sending a keyboard event to the device it's connected at.

The last one is the buzzer mode, the electronic will keep the order of the player drinking by simply turning on the associated led, the first one will have his led on still, the second will blink fast, the third will blink slower and same for fourth and fifth. This game mode can be useful for quiz, or speed games. You can simply reset the rank by pressing the first player button.

The functions

The functions are here to make simple actions that are often player regardless of the game mode.

One of the basic functions is the thresholds reset, it allow to reset the basic "seuilJack" of every player. For this, you just need to press two times the associated button without touching you ribbon, the electronic will math the average value of the sensor when the ribbon is not touched and change it for the player. This value can change depending on the ribbon used, if we put water on it, if the cup is glass or plastic etc. So it's used quite often.

Step 9: Last Step : Play !


Now your Game O Verre is build, that you understand how it work and convince some friends to be your guinea pigs it's time for you to play with it !

You can playthe Game O Verre by itself, using on-board games and maybe cards. But you also can connect it to you computer and play much advanced games.

I'm developing myself some games especially designed for the Game O Verre but nothing is advanced enough to be shared yet. I'll continue to develop until the official release, I hope to be able to have a maximum games, rhythm, quiz, blind test, reflex/speed, a narrative experience and more...

For now, you can find some multi players one button games that work well with the Game O Verre, here is a small selection of what we can find online :

Soccer Physics :

A classic, very fun to play 1 vs 1.

Wrestle Jump :

Same that soccer physics, but a lot of sip..!

Mole Hammers :

Fun but one game at the time, I will develop something on this spirit soon.

Gold Miner :

Simple, two player and quite fun.

Rush :

Nice gameplay, up to 4 player.

StepMania :

It's an Dance Dance Revolution clone, each player take a step. Play only beginners song, but very fun coop.

If you have suggestions, say them in the comments, I will try them and add them here.

Program you own ?

It's now very easy to develop games, tools like Scratch [ ] allow to make a working game in just a few hours,

Step 10: What Next ?

The Game O Verre is still a work in progress, this Instructables is a first step to a crowdfunding campaign, the way to me to see how the peoples are reacting about this project, if they like it, are enthusiast about it.

Those feedback are gonna be very precious to me to for preparing my communication and making adjustments on the project depending of your suggestions.

If your are interested about the project, it's very important to me if you can register to the Prefundia page, it's a way to me to know peoples are interested and I'll not start the kickstarter campaign before a minimum amount of peoples registered here.

As you may have noticed, the project have been published today with a license Creative Commons, by - sa - nc , that's mean that you can copy, modify and share this project as long as you quote me as the author, use an compatible license and do not make profit with it.

I hope if this project is a success be able to continue this license and even remove the non profit condition, but I need your help.

I hope to start the crowdfunding within 3 month and if it works, making the delivery before summer, the actual estimated price for a pack of 5 cups, ribbon with the electronics is about 55$ (a bit less than the DIY version if you buy everything separated).

If you interested, I'm repeating, but you can register on the Prefundia page.

Thanks !

And do not forget to vote for the contests, I could use a drone. ;)

Brave the Elements 2016

Participated in the
Brave the Elements 2016

Design Now: 3D Design Contest 2016

Participated in the
Design Now: 3D Design Contest 2016

Circuits Contest 2016

Participated in the
Circuits Contest 2016