RoboCup: Assistive Drinking Device for Wheelchair Users

By Thomas Kutcher and Rafe Neathery

Sponsored by our client Gary Lynn, advised by Dr. Maria Oden, and with special thanks to Melissa Cantu and Divya Wagh

DIY Manual

Any questions or feedback? Contact us at

The RoboCup is a robotic device that allows users with limited mobility to drink autonomously. This device was originally designed for our client with cerebral palsy who does not have the dexterity to hold a cup and drink on his own. We have developed an open-source solution that will allow those in similar situations to have the independence to drink when they want.

Skills Required:

Assembly of the RoboCup only requires access to a 3D printer and following the instructions carefully.

RoboCup setup with proximity sensor


Option between small and large diameter tubing:

  • PVC Soft Plastic Tubing Clear, 3/16" ID, 1/4" OD AND Push-to-Connect Tube Fitting with Universal Thread 1/4" Tube OD x 1/8 Pipe OR PVC Soft Plastic Tubing Clear, 1/4" ID, 3/8" OD AND Push-to-Connect Tube Fitting with Universal Thread 3/8" Tube OD x 1/8 Pipe

Option between proximity sensor and button:

  • Pololu Digital Distance Sensor 5cm AND Mini Solderless Breadboard - 4x4 Points OR 25pcsTact Tactile Push Button Switch AND Mini Solderless Breadboard - 2x4 Points

Option between larger/cheaper plastic bottle and thermos:

  • Imrider Sports 32oz Water Bottle OR GOOFIT Insulated Thermos with Cup

  • 2PCS Bicycle Water Bottle Cages

  • 18-8 Stainless Steel Phillips Oval Head Screws 6-32 Thread, 3/8" Long

  • Low-Strength Steel Hex Nut Zinc-Plated, 6-32 Thread Size

  • Round Nozzle 3/8 PT Plastic Flexible Oil Coolant Pipe Hose

  • SunFounder 20KG Servo Motor SF3218MG

  • Spur Gear Brass 30 Tooth For Servo 25 Tooth Spline 0.8

  • Wires with Pre-Crimped Terminals 10-Piece 10-Color Assortment M-M 60"

  • 120PCS Multicolor Jumper Wire Set Male to Male, Male to Female, Female to Female

  • 0.1" (2.54mm) Crimp Connector Housing: 1x3-Pin 25-Pack

  • Braided Sleeving, 0.125 in, 10 Ft, Black

  • Wire Heat Shrink Tubing Kit

  • 3-Pack Portable Charger

  • Herfair USB to Mini USB Cable

  • Arduino Nano

Optional Additions:

  • Quickun Inline Check Valve, 3/16" Hose ID One Way Return

  • 4 Pack Bite Valve Replacement and 90 Degree Silicone Mouthpiece

Electrical Assembly


  1. From pack of 5 ft pre-crimped wires, select a red, green, and blue wire
  2. Twist wires together and fit through wire sheath. Cut where appropriate
  3. Fit both ends of the wires into a 1x3 crimp housing
  4. Use heat shrink tubing to secure the ends of the wires


  1. From 10 cm jumper wires, select red, green, and blue female to female wires, and red, black, and yellow male to female wires
  2. Connect jumper wires to Arduino

Proximity Sensor

  1. Attach proximity sensor to 4x4 breadboard as shown
  2. Slide into housing, plug wires into breadboard, place velcro strip where desired


  1. Plug button and wires into 2x4 breadboard as shown
  2. Slide into housing, close with lid
  3. Use velcro strips to attach the sensor to your preferred location.

Mechanical Assembly

  1. Put the servo gear on servo
  2. Press the bushing into the motor base

Add Servo to motor mount

  1. The servo should be oriented with the wire away from the Arduino end
  2. Thread the wire through the part, and then press the servo in
  3. Put in each of the 4 screws for the servo. They should be tight in the 3d printed part. In general, it is not too concerning if some do not go in - the servo will stay in place.

Wire Arduino to servo motor and sensor/button

Slide arduino with wiring into the motor mount

Put in one screw to hold the arduino in place. It should be tight in the 3d printed part. Ensure that the micro-usb port is facing upwards

Bolt motor mount onto motor base

  1. Make sure the servo and Arduino are both secure in the motor mount
  2. Place the motor mount on the motor base and line up the two holes.
  3. Put in two bolts and nuts. It is best to do this as follows:
    1. Thread in one bolt until it is about to appear in the gap
    2. Put a nut in, and use your finger or needle-nose pliers to hold it over the bolt
    3. Carefully thread the bolt in further, making sure it is threading properly into the nut
    4. Tighten both
    5. Repeat with the other bolt and nut

Slide the shaft into the motorbox base from the bottom up. Make sure it fits between all of the Arduino wires.

Slide spacer onto shaft

Make sure it does not pinch any wiring. You may need to pull it apart to fit the spacer in.

Slide gear onto shaft

Make sure the notch lines up with the shaft, and the gear meshes with the servo gear.

Slide shaft collar onto shaft

  1. Thread in a bolt to tighten it. Make sure that the bottom of the shaft is pushed all the way up so the components are tight.
  2. Make sure that the bolt isn’t falling into the notch in the shaft
  3. Ensure that the hole is at the top of the shaft collar (far away from the gear) - otherwise the bolt could crash into the gear while it spins

Plug micro USB cable into Arduino

Put motor shield around the motorbox.

  1. Run the USB cable through the shield first, since it will be on top
  2. Make sure that all of the wires are condensed and will fit within the shield before you lower it.
  3. The sensor cable should fit in the notch at the bottom of the shield.

Put motor top on assembly

  1. Rotate the motor shield so the bolt gaps are exposed
  2. Wrap the USB cable once around the shaft and put the end of it in the gap in the shield
  3. Place the motor top on the assembly. The shaft should fit through the large hole, then rotate it to line up with the bolt holes
  4. Put in two bolts and two nuts using a similar technique as before.

Slide the straw adapter onto the shaft- make sure the notch lines up with the shaft.

Screw in a set screw.

Cut two lengths of medical tubing

  1. The first should be roughly 6 inches, plus the desired length of the straw
  2. The second should be roughly 0.5 inches, plus the height of the water bottle

Assemble the straw - Smaller Diameter Tube

  1. Segments of gooseneck tubing can be separated by bending it and squeezing until it pops apart
  2. Straighten out each segment - using a flat object or a roller can help with this
  3. Push the longer medical tubing through the gooseneck segments - this may be tricky
  4. Push the gooseneck segments together to reattach them once the medical tubing is through everything
  5. If the medical tubing will not fit in the gooseneck, you may want to switch to the wide straw design and have the medical tubing on the outside of the gooseneck.

Slide tube through motorbox shaft and screw gooseneck tube onto straw adapter

OR For larger tube:

  1. Add gooseneck sections together to create one with the desired length
  2. Screw it into the motorbox
  3. Use zipties to fasten the medical tube to the exterior of the gooseneck without overly pinching medical tubing

Optional - Attach bite valve medical tubing

Fit the medical tubing around the barbed fitting on the bite valve. This may be a tight fit.

Screw Push-To-Connect fittings into the lid piece

  1. There are two in total - one on top and one on bottom
  2. Make sure they are tight to be water-tight
  3. If they are not threading properly, try reprinting the lid piece with lower layer height. Alternatively, a heat gun could be used to slightly melt the plastic and shove the fittings in, but this is not recommended.

Snap motorbox into lid - simply twist to lock it in

Connect tubing to push-to-connect

  1. Grab the tube and push it hard into the fitting. It should seal.
  2. Connect 2nd medical tube to the push-to-connect on the bottom of the lid

Recommended - Add a check valve to the lower medical tubing.

Fit the medical tubing around the barbed fitting on the check valve - check that it is oriented correctly. If installed correctly, after water flows into the straw it will not be able to flow back out into the water bottle.

Fill up your thermos/water bottle with water and screw the lid on

  1. First, remove the O-ring (a white rubber ring) from the lid that came with the thermos/water bottle.
  2. Install the O-ring in the 3d printed lid piece in a similar manner.
  3. Do not overtighten the lid

You have finished your RoboCup! It will fit in most standard 3in cupholders. We recommend using extra velcro strips to make sure that robocup does not rotate freely in the cupholder

Instructions and files to make a custom cupholder for different wheelchairs will be posted shortly


  1. Screw lid off of water bottle and dump out contents
  2. Remove medical tubing from push to connects
  3. Twist motor box off of lid
  4. Remove gooseneck tubing from motorbox and pull out medical tubing
  5. Wash gooseneck, tubing, and lid by hand, dishwash water bottle

DO wash these

DON’T wash these

Reassemble using the same steps:

  1. Fit medical tubing back down shaft and fit gooseneck back onto motorbox.
  2. Twist motor box back onto lid and reconnect tubing
  3. Fit medical tubing back onto bottom of lid
  4. Screw device onto water bottle

PLEASE NOTE: If you choose to build this or something similar, please consult with physicians, technicians and/or clinicians.

All design work on the device was done at the Oshman Engineering Design Kitchen at Rice University

Legal Notices, Terms, and Conditions 

The RoboCup has not been FDA Approved by the Food and Drug Administration (FDA) or any other governmental or oversight authority

Several FDA guidance documentation may apply

The information is being provided without warranties (expressed and/or implied)

Nothing on this site or in the Information is intended or shall be construed as medical advice

No other licenses are granted, including for use of any trademarks of Rice or other intellectual property rights beyond the attribution requirements under the license. Attributions shall not be suggestive of endorsement by Rice.

There is no further obligation of Rice to make available clinical data, modifications, or improvements to the RoboCup.

Contact us

Oshman Engineering Design Kitchen
Rice University

6100 Main Street MS 390 | Houston, Texas | 77005

Phone: 713.348.OEDK


Lead Industry Partners