CREATE Lab Visual Programmer

Approx. Time: 


The CREATE Lab Visual Programmer was developed with Hummingbird as part of the CMU CREATE Lab Arts & Bots program. The Visual Programmer uses a story-boarding approach to programming that is quick and easy to learn. The interface allows you to rapidly create expressions  by selecting outputs and setting them on or off. Once several expressions have been built, you can create a sequence that uses these expressions to make a program. Learn to use the Visual Programmer by watching the videos, reading the tutorial below, or downloading a comic-ified guide

Table of Contents

  1. Download and Install
  2. Video Tutorials
  3. Written Instructions
    1. Making an Expression
    2. Making a Simple Sequence
    3. Using a Sensor in a Sequence
    4. Using a Counter in a Sequence
    5. Embedding a Sequence in another Sequence
    6. Exporting to Arduino (Duo only)
    7. Changing the Directory Expressions and Sequences are saved in

1. Download and Install

Click on the logo corresponding to your operating system to download the appropriate installer.

Download Windows

Windows XP, Vista, 7, 8 & 10

Apple Installer

Mac OSX 10.6+

Linux Ubuntu

Installation Instructions

  1. Plug in a Hummingbird.
  2. Open the installer file and install the visual programmer.
  3. (On some computers) You may be asked to install Java. Please install the most recent Java JRE for your operating system from here.

Check out advanced installation instructions and troubleshooting here.

2. Video Tutorials

Use the following tutorial videos to get started with programming Create Lab Visual Programmer with Hummingbird Duo. Full screen the video for best results, and use the playlist in the top left corner to select which visual programmer concept you'd like to learn about.

Videos blocked? View or download here!

3. Written Instructions

1. How to Make an Expression

An expression contains the settings of one or more outputs. To create an expression:

  1. Select the output(s) you would like to set [Example: Single Color LED on port 1].


  1. Set the values of those output(s). [Example: LED 1 to 50% brightness]


  1. Select “Save” and name your expression. The name is completely up to you, just choose something you'll remember once you have a list of dozens of expressions!


  1. You will see your expression name on the right of the screen.


Setting the Outputs

Single Color LED

Use the slider to set the brightness of the LED light from off (0) to brightest (100).

Tri-Color LED

Use the slider to set the brightness of each RED, GREEN, and BLUE hues within the LED from off (0) to brightest (255). Different combinations create different colors. All hues set to brightest (255) will create a white light.

Vibration Motor

Use the slider to set the intensity of the vibration motor from low to high (100).


Use the slider to set the speed and direction of the motor. The motor turns both clockwise and counter clockwise and can run faster (hare) or slower (turtle).


Use the slider to set the servo angle from 0 to 180.


Select from a tone, clip, or speech.  Click on “Play” to test.

Tone: choose tone from the piano keys and set the duration and volume.

Clip: Choose a clip from the drop down menu or upload your own

Speech: Type the word(s) you wish your robot to speak.

You can also record your own sounds for your programs! Learn more about this in Recording Sound for the CREATE Lab Visual Programmer.

Outputs are on, off, or unchecked

If an output selection box is unchecked, it does not necessarily mean the output is “off”. For example, if you turn an LED on, and then uncheck the LED slider box, you will notice the LED stays on. To make sure an output is off, select the output check box and move the slider to turn off the output.

Where are the sensors?

Sensors are not visible in the expression builder because there is no way to "set" them. They're used in the Sequence builder to choose between different expressions or sequences of expressions.

2. How to Make a Sequence

A sequence is a series of expressions turned into a program.


Creating a Simple Sequence

  1. Select “Sequence Builder” at the top tab bar.
  2. Select and drag the expressions you would like to use from the right into the canvas.
  3. Drag expressions so they are listed in the order you would like to use.
  4. Set the timing of each expression by clicking on the clock symbol. You can use decimals for times less than one second (like 0.1).


  1.  Select “Play”


  1. Select the arrow to toggle between two modes: 

    Play sequence once

    Loop sequence until "Stop"

3. How to Make a Sequence with a Sensor

1.     Select the “Sensor” block from the bottom right and drag into the main screen.


2.     Select the type of sensor from the drop down menu. 


There are two tracks for sequences of one or more expressions. For example, if you are using a distance sensor, there is one sequence track for when an object is close to the sensor and one sequence track for when the object is far away from the sensor.

You set which track is played by moving the blue slider. If the green bar is to the left of the blue slider, the track on the left will play. If it is to the right of the slider, the track on the right will play.

3. Select the expressions you wish to use for each sequence and drag them into the proper track.

4. Each sequence track can be looped independently by selecting the arrow at the bottom.

TIP: You can place expressions or other sensor and counter structures above or below the sensor structure. Your sequence can be as long as you want.

4. Using a Counter

A counter is helpful if you would like to repeat a sequence a certain number of times. For example, to make a servo-driven arm wave three times.

1.     Drag the counter block over from the right.


2.     Select and drag the expressions you wish to use into the counter block.

3.     Select the “lock” at the top of the counter block to set the number of iterations.


4.     Play your sequence by selecting “play”.

5. Creating a Sequence within a Sequence

It is possible to create a sequence and use it within another sequence.

1.     Create and save a sequence (or use a sequence you created in a previous step).

2.     Open a new sequence. Drag the saved sequence into the new sequence as you would an expression.


Sequence-in-Sequence tip: It is currently impossible to drag counter or sensor blocks into other counter or sensor blocks. One way to get around this is to save a counter or sensor block as a sequence, and then drag it into a sensor or counter block in a new sequence .

6. Exporting to Arduino (Duo only)

By exporting a sequence to Arduino mode, you can see the same program expressed as Arduino code, and you can run the program on your Hummingbird Duo with it unplugged from the computer. Follow the instructions, or get the comic-ified version.

1.       Select to highlight the sequence you would like to export.

2.       Click “export sequence”

3.       Windows explorer or Mac finder should pop up to display the new Arduino program.

6.1 Uploading the Program to Duo with the Arduino Environment

1. Set up the Arduino Environment for Hummingbird.

2. Double click the file to open it in the Arduino environment

3. Follow the instructions in this tutorial for switching to Arduino mode. This tutorial uses a program called the Hummingbird Firmware Burner.

4. Once in Arduino mode, the Hummingbird will no longer be recognized by CREATE Lab Visual Programmer. Use the Hummingbird Firmware Burner to switch the Hummingbird back to USB-tethered mode when you are ready to start programming it again.

7. Changing where Expressions and Sequences are Stored

To save programs to a specific directory, you need to:

1.     Click on the gear tab (the settings tab)

2.     De-select “Keep using this directory”

3.     Close and re-open Visual Programmer

4.     When visual programmer opens again you will  an option to Choose Location where new Expressions and Sequences will be stored (it will not move existing Sequences/Expressions to the new directory).