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.
Download the Mac installer and double click on it to mount the disk image and open the installation folder. Drag the “BirdBrainRobotServer” lightbulb icon into the “Applications” directory. To run it, go to Applications and double click on BirdBrainRobotServer.
If you choose to use Linux, we recommend using Ubuntu with our robots. The Ubuntu installer is here. You will need administrator privileges to install.
If you are using another version of Linux, a more general Linux package is available here. You are welcome to use this package, but we are only able to provide technical support for Ubuntu.
Visit the Chrome webstore to install the Hummingbird Connection App.
Important Note: Projects saved on a Chromebook will not work with the BirdBrain Robot server used on Windows or Mac.
Launching Snap! with Hummingbird – Windows, Mac, and Linux
Plug in a Finch, Hummingbird, or both, then run the BirdBrain Robot Server application. The following window will appear:
This window will check if you have a Finch and/or Hummingbird attached and provides a convenient way to launch the Snap! website.
Once you have Finch and/or Hummingbird plugged in, click “Open Snap!”. This will launch the Snap! website in Chrome, if installed, or in your computer’s default browser. For the best experience using Snap!, install the Chrome browser.
The checkbox for “Open Snap! locally” allows you to run Snap! if there is no internet connection. The application checks upon startup for a connection to the Snap! website and will automatically check this box if no connection is found.
Launching Snap! with Hummingbird – Chromebook or Chrome app
Saving and Loading Projects
Snap! provides for three different ways to save a project; which you use is up to you. They are:
- Save Project in the Cloud. This option allows you to easily save and load projects on different computers, but requires an internet connection as well as an account (which can be made by clicking the “cloud” button in the top left). Currently projects from one user are not shareable with others though this may change.
- Save Project in Brower. This option saves the project in the browser cache, so it is only accessible if the same user opens the same browser on the same computer. As importantly, if the cache is cleared these projects disappear.
- Export Project. This option opens a new browser window containing an xml file containing the project’s data. You must then use the browser’s “Save Page” option to save the file with a .xml extension. This is a good way to distribute example files to many people at once until cloud storage allows sharing. If you need to convert a project made with the Birdbrain Robot Server to one that is compatible with the Chrome app (or vice versa), you will need to export the project as a .xml file in order to use the converter utility.
To access the file menu for saving and loading, click on the file button in the top left corner. If you select Save or Save as you will open a window from which you can choose to either save the file locally or in the cloud. To create an xml file instead, click Export Project….
To load a project from the browser cache or from the cloud, click on Open. To open a project from an xml file, click on Import.. and browse to the location of your xml or txt file.
Known Issues and Troubleshooting
- If the Hummingbird seems to stop responding for any reason, there is no need to close the Snap! browser window. Close the BirdBrain Robot Server application instead and re-open it.
- 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.
- In Mac/Linux, 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/Linux, occasionally the application will not quit when you try to close the window – end the process with force quit in mac, or kill in linux.
- On Mac, if the Hummingbird Duo is in Arduino mode and is reset, you will need to close and re-open the BirdBrain Robot Server after the Duo has been reverted to tethered mode.
This section describes how the BirdBrain Robot Server works to connect Snap! and Finch and Hummingbird; it isn’t necessary to read if you’re just looking to use Snap!
Snap! and the BirdBrain Robot Server application communicate using Snap!’s native http:// block. This block allows Snap! to receive data from the BirdBrain Robot server and issue commands using URL’s. In order to do so, our server needs to have a “cross-domain filter” to allow http:// get requests from outside the server’s domain.
Finch and Hummingbird both have extensive Java API’s, and so we decided to use Jetty, a java-based library for creating servers. Jetty is light-weight, can be embedded into regular Java code, and allows cross-domain filters.
At a high-level, here’s a description of how data flows between Snap!, the server, and the Finch/Hummingbird API exposed by the server:
As an example, here’s how the generic server provided on this page makes text to speech capability available in Snap!
Our server has a few other features to try to make it easier for kids to launch Snap! with our libraries loaded. They are:
We provide the code and libraries for the entire utility on github. The key files to look at and understand are all souce java files and web.xml.
The source code of this work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Third-party libraries used by the source may be licensed differently.