Scratch is a tile-based visual programming language, which is an excellent first language for children to learn. We are providing a helper app that allows you to use Scratch 2.0 with Finch and Hummingbird.

Download & Install


Download the Windows installer and double click on it. Follow the instructions in the installer. Once installation is complete, a short cut to BirdBrain Robot Server will appear on your desktop.

Hummingbird’s Scratch library currently only works with Scratch 2.0’s offline editor. Install it from here.


Scratch 2.0 offline cannot be installed with MacOS Catalina. We recommend you use Snap! instead.

If you installed Scratch 2.0 offline before 2020, your Mac computer may still be able to run Scratch 2.0 offline with the BirdBrain Robot Server. If that is the case, download the BirdBrain Robot Server here. Another potential alternative is to install the Chromebook app on your Mac instead by following the Chromebook instructions below, but Google plans to discontinue the use of Chromebook apps on Mac and Windows computers in June 2021. Snap! is a better long-term solution.


Visit the Chrome webstore to install the Hummingbird Connection App. You do not need to install Scratch 2.0 offline if using a Chromebook, as we use the ScratchX website instead.

Important Note: Projects saved on a Chromebook will not work with the BirdBrain Robot server used on Windows or Mac.

Launching Scratch

Launching Scratch with Hummingbird – Windows or Mac

  • Plug in a Hummingbird.
  • Start the BirdBrain Robot Server helper application. It should show that the Hummingbird is connected. If you have a Duo in Arduino mode, the BirdBrain Robot server will indicate this and will ask you to press reset to revert to tethered mode.
  • Start Scratch 2.0 by pressing the Open Scratch button on the BirdBrain Robot Server. In Windows/Mac, the Hummingbird Scratch blocks should be pre-loaded under the More Blocks category.
  • Loading Hummingbird Blocks Manually
  • Download the zip file containing the Finch and Hummingbird extensions, as well as a few example programs.
  • Import the Hummingbird Extension file (hummingbird.s2e). Hold down the Shift key and click on File at the top left hand corner of the page. You should see the following:
  • Now click on More Blocks to see the Hummingbird blocks!
  • Launching Scratch with Hummingbird – Chromebook

  • Plug in the Hummingbird, then launch the Hummingbird Connection App from your Apps launcher page. The following window should appear:
  • Click the Open Scratch button on the app to automatically load a ScratchX page with the Hummingbird blocks loaded. Click Enable Flash if needed.
  • If the ScratchX interface with Hummingbird blocks doesn’t load, click Open Extension URL and then enter the URL for the Hummingbird:
  • Hummingbird Block Descriptions

    Motor Commands

    • HB servo: Sets servos 1 through 4 to a value from 0 to 180 degrees.
    • HB motor: Sets motor port 1 or 2 to a value from -100 to 100.
    • HB vibration. Sets vibration motor 1 or 2 to an intensity value from 0 to 100.

    LED Commands

    • HB LED: Sets the intensity of light on a single color LED on ports 1 through 4. Intensity ranges from 0 to 100.
    • HB triLED R G B: Sets the full color LED at port 1 or 2. The R, G, and B arguments control the intensity of the red, green, and blue elements in the tri-color LED. Range is 0 to 100 for each color.


    All sensing commands allow the user to specify a number corresponding to the port the sensor is on. For example, a distance sensor on port three would be read by Hummingbird distance on port 3.

    • HB temperature: Returns the value in Celsius of a temperature probe.
    • HB sound: Returns the value of a sound sensor, range is 0 to ~100.
    • HB rotary: Returns the value of the hummingbird’s knob; range is 0 to 100.
    • HB light sensor: Returns the value of a light sensor, range is 0 to 100.
    • HB distance sensor: Returns the distance to an object from a distance sensor in centimeters. The range is 8 to 80 cm with the kit’s range sensor (a value greater than 60 cm should be considered as not seeing an object).
    • HB voltage: Returns the raw analog voltage reading at the sensor port, range is 0.00 to 5.00.

    Speak Block

    The “speak” block will cause the computer to say whatever text is placed in the box.

    Known Issues and Troubleshooting

    • If the Hummingbird blocks do not pre-load when you click Open Scratch, click on Open Scratch again with Scratch already open. If this does not work or if Scratch does not open, use the instructions for manually loading the Hummingbird Scratch blocks.
    • If you are running an older version of the Birdbrain Robot Server (downloaded prior to May 2017), the sensor values may update very slowly. This is caused by App Nap putting the BirdBrain Robot Server to sleep. We recommend that you uninstall the Birdbrain Robot Server and install the most recent version. To manually disable App Nap on the BirdBrain Robot Server, CTRL-click on the BirdBrain Robot Server application and select Get Info in the resulting menu. In the Info window, check the box for Prevent App Nap: 
    • In Mac, if both Finch and Hummingbird are plugged in, you may see a 5-10 second delay after you try closing the server, and you may get an error message on close.
    • In Mac, occasionally the application will not quit when you try to close the window – end the process with force quit.
    • If the robot seems to stop responding for any reason, there is no need to close Scratch. Close the BirdBrain Robot Server application instead and re-open it.
    • In Mac, the Hummingbird board must be plugged in before starting the BirdBrain Robot Server.
    • On a Mac, if you revert a Hummingbird Duo from Arduino mode to tethered mode, you must then close/reopen the BirdBrain Robot Server.
    • Sometimes loops with just Finch/Hummingbird command blocks seem to run just once instead of looping. Add a non Finch/Hummingbird block into the loop to make the loop work (a good dummy block is a “Wait 0”).
    • The Hummingbird Connection App for Chrome must stay visible on the desktop if using it with a Macbook running OS 10.9 or later. If the app is minimized, sensor values will stop updating and output commands will be sent very slowly.