Finch Hardware

Understanding the Finch hardware capabilities is important for any programmer wishing to develop for the Finch.  This page discusses the Finch's sensors, motors, buzzer, LED, USB tether, and plastic shell.  

Sensors

The Finch is capable of sensing ambient light levels, temperature, obstacles placed in front of it, and acceleration. 
 
Light. The Finch uses two photoresistors to detect ambient light levels. These sensors are analog with 8 bits of resolution and can easily differentiate sunny and cloudy days and brightness of various indoor light sources.  These sensors are commonly used as either input devices or to allow the Finch to track towards or away from light sources.  
 
Temperature. The Finch has a single thermistor sensor that detects the ambient temperature. The sensor can also determine the temperature of an object if the object is placed in contact with the sensor. The temperature sensor is accurate to within 2 degrees Fahrenheit.
 
Obstacle Detection. The Finch has two Infrared sensors. These sensors can detect obstacles in front of the Finch.  The sensors are digital and so act as virtual bumpers - they do not provide information on the distance to an obstacle, but simply register whether an obstacle exists.  The sensor detection range is between 3 and 12 inches.  Due to the limitations of this type of sensor very narrow objects or objects made of certain black plastics may not register as obstacles.
 
Accelerometers. The Finch uses a Freescale MMA7660FC 3-axis MEMS accelerometer to detect acceleration. The sensor can detect accelerations of +/- 1.5 gees. The primary use of the accelerometer is to detect the direction of gravity, so as to know how the Finch is oriented (flat on the ground, upright, etc). It is also possible to detect spikes in acceleration caused by tapping or shaking the Finch.

Motors

The Finch has two gear motors and uses its tail as a slide caster. It can turn in place around the axis of the motor's shafts. The wheels are press-fit onto the motor shafts.  The Finch's top speed is roughly 15 inches per second.

Light & Sound

The Finch has a full-color LED embedded in its ‘beak’. This LED contains red, green, and blue elements. By setting the intensity of each element the LED can be controlled to make any color. There are 256 settings for intensity for each color element.
 
The Finch has an on-board buzzer which is capable of playing sounds with frequencies between 100 Hz and 10 KHz. Software that comes with the Finch also allows the programmer to control computer speakers so as to play synthesized speech, wav files, or musical notes.

USB

The Finch is classified as a USB HID Device - the same classification to which computer mice and keyboards belong.  The Finch's protocol for communicating with the computer is available on the site under Documentation->USB Protocol.  As an HID device, the Finch makes use of generic drivers and so it is not necessary to install additional drivers for the Finch.   
 
The Finch draws power from USB and is a high-current device.  The Finch comes with a 15 foot USB Type A to Type B cable.  The tether provides the Finch with a number of advantages, notably lower costs, easy language integration, and the elimination of batteries and battery charging overhead, but it does reduce the usefulness of the Finch's motors.  Holding the cable overhead to improve Finch's mobility is recommended when running programs that make use of the motors.   

Plastic Shell

The Finch electronics are encased in a two piece plastic molded shell.  The shell was designed to account for both practical and aesthetic considerations.  Practical shell features include:

  • Shell conforms to a two handed grip, with the light sensors placed so that they can easily be occluded by thumbs (and thus used as buttons).
  • The Finch can be balanced on its tail with the beak pointing up, which can be useful for testing programs that use the motors.
  • An indentation on the Finch tail allows tape or velcro mounting of a pen.  
  • The USB cable can easily be wrapped around the lower part of the Finch's body.
  • The shell includes a slide caster that is nearly frictionless.

The shell aesthetics were designed with feedback from high school CS teachers and students.  Roughly 100 students voted on several early shell designs, and we selected the top two vote-getting shell designs and combined the favorite features from each to come up with the final Finch design.  

Circuit Board Schematic

The schematic for the current version of the Finch is shown below. You can also download a full-resolution version.