LEGO® MINDSTORMS® and Technic®MINDSTORMS® NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®VEX;LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome



    VEX Ball Contraption (VBC)

    VEX Ball Contraption is a collaborative project where people bring "moving ball" modules that are chained together. Each module must transfer, by any means (preferably spectacular!) ball from its input hopper to the input hopper of the next module in the chain. This is always a hit with kids... and not-so-kids!

    VBC at VEX Worlds 2016!

    To get a taste of what it looks like, watch these videos! They were shot at the first VBC display at VEX World 2016, Super Users booth.

    Link to YouTube video

    Link to YouTube video

     VBC specifications and discussion

    To make this work, and guarantee interoperability between modules built by different people, some rules must be followed. Here are the specifications used during the first VBC event, at VEX World 2016.
    1. VBC uses 228-2500-500 25mm VEX balls.
    2.  Each module shall have a "in-basket", and must move balls to the next module's in-basket.
      1. Balls shall exit the module in line with the point of entry for straight line modules.
      2. Balls shall exit the module at a height sufficient to drop into the next module's in-basket.
      3. The space between the output of the module and the table shall be clear of any structure.
      4. The output of a module shall direct the balls into the next module's in-basket in a manner that can be reasonably expected to result in balls reliably staying in the in-basket.
    3. The in-basket shall be a minimum of 10 hole beam length by 10 hole beam length (5 inches by 5 inches) (inside dimension) and no more than a 16 hole beam (8 inches) tall. The outer wall shall be no thicker than 1/4 inch (1 beam thickness) at the top edge where balls enter.
    4. The module shall extend no wider than 30 cm (12 inches) from centerline of the in-basket and output.
    5. Each module shall be able to accept/pass balls at a minimum average rate of 1 ball every 4 seconds. Balls can be passed continuously, or in a batch. A batch should no exceed 16 balls.
    6. General notes
      1. The ring of modules will direct ball flow in a counterclockwise direction.
      2. There is no size limit beyond those listed.

    Notes about this specification: 

    1b - Maximum input height = minimum output height = 16 hole beam height.

    2c - More generally, no structure should prevent sending balls to the next module, or to receive balls from previous one (you must be able to place modules "close enough" to allow ball transfer.

    2d - If your module is tall and could drop balls from a great height, you must provide some form of ramp to allow the balls to drop in the next module from a reasonable height (say less than 24 holes). Horizontal speed of balls must also be "low enough" (use shallow angle ramp, or provide some form of deflector/stopper at the end).

    2 - While vertical dimension (16 hole beam maximum) must always be respected, horizontal dimension of the bucket is not so critical, especially in the direction of ball flow (though in a corner of the loop you may want to input balls from "back" side of module). Width is important only if output of previous module is large (generally batch type module), but many modules turn out to be of serial type, with a 1 ball width output. So narrower input bins, while they should be avoided, can generally be accommodated easily.

    3 - Table width is limited! Your module shouldn't be too deep...

    4 - 0.25 ball/second average speed is easily achieved. At VEX World 2016, measured average ball speed for the loop was about 0.33 ball/second. It is difficult to ensure that an output batch will never exceed 16 balls, but this provides an indication

    5a -This means that if a module has a nice looking side, it must be oriented to show it to the public.


    VBC tips and tricks

    • Whenever there is a narrowing in the balls path, such as going from wide input bin to narrow, single ball width of a serial ball stream, there WILL be ball jams. Normal working of the module may provide enough stirring, but this will generally not be enough. You must then provide some form of stirring such as moving floor or rotating beam under balls.
    • Thoroughly test your modules, and when you are done, test them again. Use fast serial ball stream at input or (generally worse) 16 balls batches to exercise your module.
      Remember that if a module leaks a ball each minute, which doesn't seem much, 20 similar modules will require VBC servants to pick up a ball every 3 seconds on average! Even more important than ball leakage, pay attention to modules that jam!
      And even after extensive testing, it happens that modules fail at the event. My Zig-zag tower module that seemed to work well at home "exploded" several times at VEX World 2016 and had to be removed from the loop.
    • Study the solutions used in HEXBUG ball machines. There are plenty of interesting there, as well as nice parts for VBCs!
    • When building ramps, prefer 1.5 beam width between rails (green). Ball is better seated than with 1 beam width (yellow) and rolls slower. Grey ramp works too but ball rolls faster because contact point is on its diameter. Whichever method you use, rolling surface is not even, and you must use enough slope to make sure the ball doesn't get stuck!

    VBC power

    Most modules are "dumb" ones, powered by a single motor. For these modules, you can either use:

    • HEXBUG motors, switch and battery pack. As this setup doesn't allow speed variation, the gearing of the module should be tuned to get the proper working speed. Two sets of alkaline batteries were enough to power 4 modules during VEX World 2016.


    • VEX IQ smart motors and brain. Overall, IQ batteries lasted 4-5 hours while powering 5-6 modules.

    Here is a Robot-C motor driver program for VBC events. It allows to power several simple VBC modules (single motor mechanical contraptions). Though the motors are not hot-plug on VEX-IQ brain (they are detected at brain power on), a clever trick (courtesy of Laurens Valk) allows to use any number of motors (function SetConnectedMotorSpeed).

    Program starts with various power levels and direction, so it is usable without any further configuration, just by choosing the port offering the right setting for the module. It is nonetheless possible to change speed for each port using brain keys. Unfortunately, this configuration is not remembered after stopping the program (IQ doesn't support files)

    All connected motors get powered at various power levels and direction

    Default speed values can be changed using brain keys.
    Up/Down select the port to modify.
    Pressing Select key allow to change speed using Up/Down
    Select key again return to port select mode

    Pressing Up and Down keys together for 0.5s results in an emergency stop of all motors while keeping the programmed speed values. Press Up or Down to restart motors.


    See a few VBC models here, with SnapCAD files!

Last updated 2016-04-29 

LEGO® MINDSTORMS® and Technic®MINDSTORMS® NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®VEX;LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome