You are on page 1of 13

Updated: 17 August 2012

Copyright | All Rights Reserved


For more information visit http://www.fireflyexperiments.com
***Change Log***
Firefly_1.0067 (released Aug. 17th, 2012)
-------------------------------------------The Firefly_Firmata.ino arduino sketch has been completely re-written. There ar
e no
longer different 'flavors' of the Firefly Firmata (one for the Uno, one for the
Mega,
etc.)... Now the Firmata recognizes which board you have selected an only upload
s the
necessary code onto your board... so there's only one Firefly Firmata to rule th
em all!
There's also support for the new Leonardo board.
The Webcam Video Stream component now supports multiple cameras.
Load Image(New Component) - This component allows you to load any standard still
image
(.jpg, .png, .tif, .bmp, .gif, etc) and returns a Firefly Bitmap. All image fil
ters and
effects components can be used on these bitmaps.
Bitmap Layers(New Component) - This component allows you to composite different
bitmaps together using different blending modes and opacities for each layer. Fe
aturing
the Zoomable User Interface (ZUI), you can add/remove different layers from the
stack by
zooming in on the component (little plus and minus icons will appear beside each
input
to add or remove them from the stack). The component supports blending modes su
ch as:
Normal, Screen, Multiply, Overlay, Color Dodge, Color Burn, Soft Light, Hard Lig
ht,
Lighten, and Darken.
Exposure (Movement)(New Component) - Similar to the Exposure (Accumulative) effe
cts
filter, this component will temporally add black and white information to a Fire
fly
bitmap based on the movement that occurs in an image.
Color Test (New Component) - This utility component allows you to test whether a
color in input A is within a certain threshold of the colors in input B. Can be
used
in tandem with the Bitmap Sampler component to detect if (and where) a certain c
olor
is detected in an image.
Bitmap Info (New Component) - Returns basic information (resolution in X, resolu
tion
in Y axis) of a Firefly Bitmap.
A toggle switch was implemented on the Replace Color component (invoke by rightclicking

on the component), which allows you to invert the fill procedure.


Frequency Spectrum (New Component) - Uses a 2D Fast Fourier Transform (FFT) to d
ecompose a list of audio values into its corresponding frequencies. These freque
ncies
and intensities are then mapped along the X & Y axis to give a visual representa
tion
of the frequency spectrum recorded (in real-time) by your microphone. The compo
nent
also returns the peak frequency and peak note detected.
Pachube / Cosm Read (New Component) - The existing Pachube Read component has be
en
completely re-written. The functionality is similar, however the UI is complete
ly new.
The outputs of the component will be dynamically added/removed based on the feed
type
you are trying to connect to (.csv, .xml, .json). The deserializers have been b
eefed
up, and should work for current Cosm feeds and datastreams, as well as historica
l data.
For more information, visit: www.cosm.com/docs.
The UI for the Quad Stepper Motor component has been slightly re-worked (more ef
ficient).
The OSC Listener deserializer in the OSC Listener component has been beefed up t
o
support more datatypes, like 4d float numbers, and matrices.
The Code Generator library has been updated with a new functions to handle butto
ns
and control knobs(found under Params/Input tab and released in GH 0.9.0005).
A bug was fixed in the Firefly_Stepper.ino sketch where the step values were bei
ng
stored as integer values (as opposed to longs) which was causing issues if the m
otor
moved too far in one direction.
All tutorial examples have been updated to be compatible with Grasshopper 0.9.00
6 and
a new tutorial to illustrate the Bitmap Layers functionality has been added.
The C_sawapan_media.dll has been updated with several new functions by Panagioti
s
Michalatos.
Known Bugs: The C_sawapan_media.dll has only been compiled for 32-bit applicatio
ns. This
means that the computer vision and audio components will not work in Rhino 5.0 6
4-bit.
You will likely get an error upon launching Grasshopper using Rhino 5.0 64-bit f
or this
reason. It will work fine (and has been tested) in Rhino 5.0 32-bit and Rhino 4
.0.
Firefly_1.0066 (released Mar. 13th, 2012)

-------------------------------------------Smoothing (Temporal)(New Component) - This component converges on a smoothed num


eric value based on a weighted distribution of past observations and the current
incoming value. The other Smoothing component in the Firefly toolkit has been
renamed Smoothing (Moving Average).
The Code Generator library has been updated with a new function to handle the ne
w temporal smoothing component, and the moving average smoothing function has be
en updated to reflect the new naming convention.
The Webcam Video Stream and Video Input components now have settings to control
the output resolution. Supported sizes include (640x480; 480x360; 360x240; 240x1
80; 160x120; 80x60; 40x30).
Flip Image (New Component) - This component will flip a Firefly Bitmap along its
X, Y, or XY axis.
Resize Image (New Component) - This component will resize a Firefly Bitmap to ne
w X and Y dimensions.
Image Region (New Component) - Extract a smaller region within a Firefly Bitmap.
Accumlative Exposure (New Component) - This component will temporally add color
information to a Firefly bitmap, so longer exposures will show up in the image,
but fast motion movements will only show up as traces.
Firefly_Bridge.dll has been added to create shared functionality between differe
nt Firefly build files (eg. Firefly_X.gha and the Firefly_Kinect.gha).
All tutorial examples have been updated to be compatible with Grasshopper 0.8.00
66 and a new tutorial on creating tones from curve geometry has been added to th
e examples folder.
Firefly_1.0065 (released Feb. 10th, 2012)
-------------------------------------------This release provides a new suite of computer vision and audio synthesis tools,
thanks in large part to a library (C_sawapan_media.dll) developed by Panagiotis
Michalatos and Sawako Kaijima - founders of Sawapan, a computational design and
consultancy group based out of London, UK. For more information about their wor
k, visit: www.sawapan.eu The C_sawapan_media.dll library provides support for w
eb cam streaming, video playback, sound input and analysis, and audio generation
, etc. The following are a list of new components included in this release:
Web Cam Video Stream (New Component) - The Web Cam Video Stream component will a
utomatically connect to your default video capturing device (if available) and b
egin returning a custom Firefly Bitmap which can be passed through various image
filters. Right-click on the component to change the speed of the image capture
.
Video Player (New Component) - The Video Player component will play basic Window
s video file types. At the moment, it only supports .avi files. Right-click on
the player to change video resolution... but a word of caution. The larger the
resolution, the slower everything becomes because it has to process many more p
ixels. The video player outputs a Firefly Bitmap (just like the Web Cam Video S
tream component) and all of the same filters/video analysis tools can be applied
to the resultant bitmap.
Bitmap Painter (New Component) - The Bitmap Painter component will visualize any
Firely Bitmap on the Grasshopper canvas. You can pass a Firefly Bitmap through

various filters/analysis components and visualize the image at any point using
this component.
Blur (New Component) - This filter will blur a Firefly Bitmap. The intensity of
the blur can be controlled through the number of iterations.
Brightness and Saturation (New Component) - This filter will modify the saturati
on and brightness of a Firefly Bitmap.
Color Correction (New Component) - This filter will modify the color properties
(red, green, and blue) of a Firefly Bitmap.
Contrast (New Component) - This filter will modify the contrast of a Firefly Bit
map.
Custom Convolution Filter (New Component) - A convolution kernel describes how t
o scale and add together the values of the neighbours of a pixel in order to com
pute a new value for that pixel. Using a custom 3x3 matrix, you can create all
kinds of different image filters including: gaussian blur, edge detection, and s
harpening etc. For more information see the Firefly_15_Convolution_Kernels.gh f
ile included in the Grasshoper examples folder.
Edge Detection (New Component) - Find edges in a Firefly Bitmap.
Emboss (New Component) - This filter will provide an embossing filter for a Fire
fly Bitmap.
Gamma Correction (New Component) - This filter will provide gamma correction of
a Firefly Bitmap.
Invert (New Component) - This filter will invert a Firefly Bitmap.
Replace Color (New Component) - This filter will replace any given color in a Fi
refly Bitmap with another color. The intensity can be controlled with a thresho
ld input.
Sharpen (New Component) - This filter will sharpen a Firefly Bitmap.
Bitmap Sampler (New Component) - Sample a Firefly Bitmap based on an incoming se
t of points for a given filter type (Color, Red, Green, Blue, Hue, Saturation, a
nd Brightness). This component works similarly to the Grasshopper Bitmap Sample
r, only this component is customized for Firefly images. The Bitmap Sampler wil
l return values for a series of points mapped at normalized units. Thus, the lo
wer left hand corner of the image can be found by sampling point (0,0,0) and the
upper right hand corner represents point (1,1,0) - so if you want a normal mapp
ing, you will need the domain of your point grid to fall within a u:{0.0 To 1.0}
and v:{0.0 To 1.0} range. For more information see the Firefly_14_Video_Filter
.gh file included in the Grasshopper examples folder for more information.
Gradient Vector (New Component) - The Gradient Vector component creates a vector
field based on changes in brightness in a Firefly Bitmap. The derivatives dx an
d dy measure how fast the brightness values vary along the x and y axes of the i
mage. If the image were a heigh field then they would measure the slope at each
point along the x and y directions. The two derivatives dx and dy form the compo
nents of a vector called the gradient of the image. The gradient is a vector tha
t at each point points toward the direction of maximum change. For more informat
ion see the Firefly_16_Video_Synthesis.gh file included in the Grasshopper examp
les folder for more information.
Contour Vector (New Component) - The field perpendicular to the gradient is the

contour field and designates the directions of minimal or no change. It is simpl


y [-dy, dx] since in 2 dimensions we can construct a vector normal to another ve
ctor just be switching the x and y components and flipping the sign of one of th
em. For more information see the Firefly_16_Video_Synthesis.gh file included in
the Grasshopper examples folder for more information.
Swirl Vector (New Component) - Combining the gradient and contour fields we can
move diagonally along the height field generating spiralling paths around peaks.
For more information see the Firefly_16_Video_Synthesis.gh file included in the
Grasshopper examples folder for more information.
Optical Flow (New Component) - Optical flow is an algorithm that seeks to extrac
t the approximate direction that each pixel
tends to move to between frames. For more information see the Firefly_16_Video_S
ynthesis.gh file included in the Grasshopper
examples folder for more information.
Mesh From Image (New Component) - The height of the mesh can be controlled by th
e luminance of each pixel. The scale of
influence can be controlled using the height slider (works in both positive and
negative directions). For more information
see the Firefly_16_Video_Synthesis.gh file included in the Grasshopper examples
folder for more information.
Video Averages (New Component) - Find the average direction of movement and cetr
oids of color within the pixels defined by a
bounding box within a Firefly bitmap. This component will search within this re
ctangle and determine the average direction of
movement (vector) as well as the average colors. Mutiple bounding boxes can be
defined as search areas within an image to
determine the general direction of movement and average colors within that area.
Note: Point [0.0, 0.0, 0.0] denotes the lower
left hand corner of the image while Point (1.0, 1.0, 0.0) indicates the upper ri
ght hand corner of the image.
Sound Capture (New Component) - Capture the audio frequencies from the left and
right channel from an audio input (eg. microphone).
Note: This component requires the use of the GH_Timer component.
Tones From Frequency (New Component) - Generate audio tones based on incoming fr
equencies. Also control volume and duration
of each tone. For more information see the Firefly_17_Tone Generator_Key Pad.gh
file included in the Grasshopper examples folder
for more information.
Note To Frequency (New Component) - Generate frequency from notes. For more info
rmation visit
http://en.wikipedia.org/wiki/Piano_key_frequencies
The Frame Rate component has been completely re-written to work more consistentl
y. It now has event handlers to check when the last
solution was computed, returning the time in milliseconds and the average freque
ncy (frames per second).
Firefly_1.0064 (released Jan. 16th, 2012)
-------------------------------------------The Pachube Read component has been completely rewritten. The component now acc
epts JSON feed types (along with XML and CSV as before). The component has dyna

mic outputs depending on the feed type. The component also features better pars
ing for CSV files from the existing file. See updated Firefly_08_Pachube.gh exa
mple file for more information.
Is Geometry Selected (New Component) - The Is Geometry Selected component accept
s a list of GUID numbers for specified geometry and will return a true boolean v
alue if the geometry is currently selected. Note: This component requires the u
se of the GH_Timer component (Params/Special/Timer).
Firefly_QuadStepper_Firmata.ino (New Firmata) - Firefly now supports the control
of up to four stepper motors using the Firefly_QuadStepper_Firmata Arduino sket
ch (included in the Arduino Code folder). This sketch uses the AccelStepper wri
tten by Adafruit industries and is available for download at https://github.com/
adafruit/AccelStepper/downloads. Please read the ReadMe.txt file included in th
e firmata sketch folder for instructions on how to install this library.
Quad Stepper Format (New Component) - This component will format incoming data t
o control up to four stepper motors. Note: This component will format the data a
ccording to the Firefly Stepper Firmata. With this component you can control th
e number of steps to move the motors, the maximum speed of the motors, accelerat
ion, and calibration setpoints. Please see the new Firefly_13_StepperControl.gh
file included in the Grasshopper Example folder for information on how to use t
his component.
Quad Stepper Format (New Component) - This utility component will convert an ang
le value in degrees to the appropriate amount of steps to move a motor.
The Firefly Code Generator has been updated to work with the new Arduino 1.0 IDE
. The component now saves all sketches with the appropriate extension (.ino) pe
r the new specifications.
The Upload To I/O Board (Arduino Bake) component has been temporarily removed wh
ile I make some adjustments on how to upload sketches according to the new Ardui
no 1.0 specifications. This component will hopefully become available in the ne
ar future.
All existing Grasshopper examples have been updated to work with Grasshopper 0.8
.0063 and two new examples have been added (Firefly_12_Undulating_Delaunay_Mesh.
gh and Firefly_13_StepperControl.gh). Make sure to check them out.
Firefly_1.0063 (released Oct. 6th, 2011)
-------------------------------------------The Stop Watch component (released in 1.0062) was renamed to Framerate, as it re
turned the time in milliseconds since the data had last been updated, as well as
an estimated frames per second interval.
Stop Watch (New Component) - A new Stop Watch component was created to replicate
the functionality of a real stop-watch. When you set the start input toggle to
true, the timer will start counting, and when you switch it back to false, then
it will return the time in milliseconds for that interval. You can repeating t
his pattern, adding more time each time the stop watch is started and then stopp
ed. You can reset the Stop Watch interval by toggling the reset input.
Bang (New Component) - A new Bang component was added to register edge condition
s for a boolean input. The T-output will register a momentary True value when t
he input toggle has been set to True. The F-output will register a momentary Tr
ue value when the input toggle has been set to False. Note: This component requ
ires the use of a Timer component (Params/Special/Timer). This component is the
equivalent to a Bang component in other programs like Pd, Max/MSP, and VVVV.

Is Key Pressed (New Component) - This is a new component that will register if a
key on your keyboard has just been pressed. Simply specify a string value that
you would like to test, and connect a Timer component to this component. The o
utput will return True if the key was just pressed. This component recognizes a
ll alpha numeric inputs, F-keys, and special keys (like up, down, left, right, c
ontrol, shift, space, etc.)
NOR Flip Flop (New Component) - The NOR flip-flop has two inputs, namely, a Set
input (S) and a Reset (R) input. A simple representation of an S-R flip-flop is
a pair of cross-coupled NOR gates, i.e, the output of one gate is tied to one of
the two inputs of the other gate and vice versa. Thus, setting the output gate
to false requires R=true and S=false, while setting the output gate to true requ
ires S=true and R=false.
AND Flip Flop (New Component) - The AND flip-flop differs from the NOR flip-flop
in the sense that the output gate is determined by its present output state as
well the states of both of its inputs. Thus, in a AND flip-flop, the output will
not change if both S and R are false, but will toggle to its complement if both
inputs are set to true.
Counter (New Component) - Counts upwards and downwards. You can set the directi
on to count, step size, and constraint limits for the counter. Note: This compon
ent requires the use of the GH_Timer component (Params/Special/Timer).
Several new functions were added to the Code Generator Library including: Counte
r, AND Flip Flop, NOR Flip Flop, Bang, Stop Watch, FrameRate, Equality, Larger T
han, Smaller Than.
The Firefly Code Editor (double click on the Code Generator component) has gone
through a major overhaul. The scripting editor still lacks some major functiona
lity (such as verifying a sketch, and uploading to an Arduino board), but many n
ew items have been added for editing Arduino code directly within Grasshopper.
The component will now look for a current installation of Arduino installed on y
our computer, so that it can search for your sketchbook folder. You also have d
irect access to all of the example files that are included in the Arduino IDE.
More functionality will be added to the Code Editor in coming releases.
Some of the Firefly Component panels were renamed.
Firefly_1.0062 (released Aug. 11th, 2011)
-------------------------------------------This is a minor release to fix issues pertaining to the changes made in the most
recent release of Grasshopper (build 0.8.0050). Much of the functionality rema
ins the same as the previous version, however all components have been updated t
o work with this new build.
Stop Watch (New Component) - There is a new stop watch component which will retu
rn the time in milliseconds since the input data was updated. Along with the ou
tput time interval, this component will also return the frames-per-second (fps)
to give you a relative idea of how many solutions are being calculated each seco
nd.
This build unveils the very first attempt at a Firefly Code Editor (which can be
invoked by double clicking on the Code Generator component or through it's comp
onent menu). The Firefly Code Editor is a text editor for modifying Arduino ske
tches. It is similar to the Arduino IDE (or hopes to be in the future), although
it is built directly inside the Grasshopper interface. At the moment, only the

basic functionality exists (New File, Open, Save, Close, etc.) but there will b
e many more improvements made to this over the coming months (including verifyin
g and uploading Arduino sketches to your board). Stay tuned for more information
on this in later releases.
The baud rate on the Wii_Nunchuck sketch was changed to 115200 (from 9600) to be
consistent with the other Firefly Firmata sketches.

Firefly_1.0061 (released Jul. 9th, 2011)


-------------------------------------------A small bug was found in the Firefly_Firmata_Mega Arduino sketch which was causi
ng the board to not handle the data coming over from Grasshopper properly. Esse
ntially, the buffer size was too small, so this has been changed. Additionally,
the baud rate in the old Mega firmata sketch (9600) was too slow to send that m
uch data back and forth (causing Grasshopper to lag behind). We decided to chan
ge the baud rate on both the Uno and Mega firmata sketches to 115200, which had
noticable increase in performance when manipulating data from within Grasshopper
.
The default baud rate for the Open Port component was set to 115200 (as opposed
to 9600 in previous versions).

Firefly_1.006 (released Jul. 3rd, 2011)


-------------------------------------------****New Components****
Code Generator (New Component) - This component will attempt to convert any Gras
shopper definition into Arduino compatible code (C++) on the fly. Simply connec
t the Out string from either the Uno/Mega Write component to the input of the Co
de Generator and watch the code build as you create your Grasshopper definition.
It works by detecting any component 'upstream' from the Uno/Mega Write compone
nt. When it detects a component, it checks whether or not it has a function for
that component. If it does, it adds the function to the top of the code, and p
roperly calls the function inside the main setup() or loop() functions. If the l
ibrary of functions does not contain a definition for a particular Grasshopper c
omponent, it will provide a warning. This code can be simultaneously saved as a
.pde file to be opened in the Arduino IDE.
Upload to I/O Board (New Component) - This component will attempt to upload any
Arduino sketch to your I/O Board. The first time you add this component to a de
finition, you should see a pop-up dialogue box asking you to locate the root Ard
uino.exe file. This is because this component uses a lot of the same header fil
es that are included in the Arduino IDE. You will only have to locate this file
once, as a FireflySettings.xml file will be created on your computer (in the ro
aming folder) which stores directory for future use.
If the Arduino sketch file path is valid (can be from the Code Generator), you c
an click on the arrow icon to upload the sketch to the board. Alot of stuff hap
pens behind the scenes, but it should create a dynamic MakeFile and convert the
.pde file into a .cpp (C++) file and then into .hex code (machine readable code
for the microcontroller).
For best results, set all the boolean toggles connected to the Uno Read/Write st
art input to false and close the COM port before uploading. You can also upload

any other Arduino sketch by specifying the appropriate file path. For example,
you can upload the Firefly Firmata sketch directly using this component.
NOTE: WinAVR is required to be installed in order for the Upload to I/O Board co
mponent to work properly. WinAVR (pronounced "whenever") is a free suite of exec
utable, open source software development tools which includes avr-gcc (compiler)
, avrdude (programmer), among other things. To install WinAVR on your machine:
- Go to: http://sourceforge.net/projects/winavr/files/WinAVR/
- Click on the folder called "20100110" and download the file WinAVR-20100110-in
stall.exe
- Run the executable and follow the instructions.
UDP Listener (New Component) - User Datagram Protocol (UDP) is a transmission mo
del for sending/receiving messages over a network. The UDP Listener component si
mply opens a UDP port and listens for any incoming message.
An IP address is not required for listening for messages (only for sending messa
ges). The return value is a string.
NOTE: the GH_Timer component should be used to automatically refresh the incomin
g message.
UDP Sender (New Component) - The UDP Sender component sends any string message t
o a specified IP address on the
network through a given port. This can be useful in sending messages to other p
rograms running on another computer
(such as Processing) or other mobile devices.
OSC Listener (New Component) - Open Sound Control (OSC) messages are essentially
specially formatted User Datagram
Protocols (UDP) transmissions. The OSC Listener component works by opening a UD
P port and listening for any OSC
message on the network. It receives a message it creates a data tree structure
which contains the OSC name and the
value (can be floats, integers, strings, etc.). If a new message is received wi
th a different name, then a new branch
is created for that message. However, if message is received and a branch alrea
dy contains that name, then the value
will updated. Use a List Item or Tree Item to retrieve the latest value for eac
h message in the data tree. A reset
toggle can be used to clear the data tree values. NOTE: the GH_Timer component s
hould be used to automatically refresh
the incoming message.
OSC Sender (New Component) - As stated above, OSC messages are specially formatt
ed messages which can be broadcast over a network. In order to send an OSC messa
ge, you must know the IP address of the device you're trying to send the message
to. You must also specify a unique UDP port. Once you have specified the IP a
ddress and the Port, you can connect any type of data (sliders, toggles, panels,
etc.) and it will automatically format the data into an OSC message and broadca
st that to the specified address. This can be useful for sharing files among mu
ltiple computers, allowing certain people access to control different parameters
. Can be used in tandem with the OSC Listener component (above).
For more information about OSC specifications, visit:vhttp://opensoundcontrol.or
g/spec-1_0
XML Search (New Component) - This component allows you to search through an XML
file (either from the web or from a local directory) for a specific element tag,
returning the value of that tag in a list.

State Detection (New Component) - The State Detection component is used when you
want to do some action based on how many times a button is pushed. It checks t
he number of times the current value has switched from HIGH to LOW (or vice vers
a) and whether or not the modulo of that counter value equals zero. If so, it f
lips the state detection output. So, if the modulo value is 2, then every other
time the button is pushed, the state value will switch. Or if the modulo value i
s 4, then every 4th push of the button will trigger the state value to change.
****Bug Fixes****
The speed has been dramatically improved (roughly 10x faster). For performance
reasons, the decision was made to go back to using the built-in Grasshopper Time
r (Parameters/Special/Timer) instead of using the Form Timer that was built into
the previous versions of Firefly. The Grasshopper Timer is now threaded and ve
ry stable.
The Uno and Mega Write components have been overhauled. Each input with a (~) ti
lde symbol can now be set to one of three states (Digial, PWM, and Servo). All
other pins can be set to one of two states (Digital or Servo). Right-click to ch
ange these states. The digital state will allow only HIGH/LOW values to be sent
to the board, while PWM will allow any integer value between 0-255. Similarly,
the Servo state will allow any integer between 0-180. These components are now
much more flexible as Servo control can now be invoked on any pin.
The Firefly Firmata has also been completely re-worked to handle the different v
alues being sent from the Uno and Mega Write components. The code now allows fo
r dynamic attach/detachment of servos, so a servo can be hooked up to any pin.
This makes everything much more flexible.
Not all of the pins on the Mega Write component had been assigned in the previou
s version, so the pin setup on the this component has been reworked.
A bug was found in the Open Port component which would not allow the port number
to be changed after the initial solution was computed. This has been resolved.
The Fader-One-Way and Fader-Two-Way components now rely on the Grasshopper Timer
(Parameters/Special/Timer) to continuously update. This timer is threaded and t
hus significantly faster than the old timer which was built-in to these componen
ts.
A loop counter output was added to the Fader-One-Way and Fader-Two-Way component
s.
A reset input was added to the Playback component to restart the data output.
The Data Log component no longer stores null or empty values.
A small bug was found in the Pachube Read component pertaining to how it dealt w
ith the incoming XML data. This has been fixed.
The Wave component was removed.
Firefly_1.005 (released Feb. 15th, 2011)
-------------------------------------------This is a minor update to fix a bug inside the reacTIVision component which was
causing Rhino to crash when a document was closed.

Firefly_1.004 (released Jan. 31st, 2011)


-------------------------------------------Ports Available (New Component) - Check to see which COM Ports are curretly avai
lable. If you have one or more Arduino boards connected to your computer, this w
ill return the integer associated with each port. You can verify the COM number
is correct by clicking on Tools>Serial Port inside the Arduino
IDE (board must be connected to the computer).
Reactivision (New Component) - Reactivision Listener draws the position and rota
tion of each Reactivision fiducial marker. This component is meant to be used in
tandem with the Reactivision software, available for free from http://www.react
ivision.com/downloads. Fiducial marker set available from http://reactivision.so
urceforge.net/#files. Note: You must have the Reactivision software and
working camera enabled to use this component.
Wave (New Component) - Createw a sinusoidal waveform output.
Changed Duemilanove Read and Write components to reflect changes to new Arduino
Uno board.
Fixed Pachbue component bug. The Pachube API changed in Aug. 2010 and the xml p
arser was modified to work with V2.
Made Smooth component work more efficiently.
Fixed bug in Binary Blink component where the Repeat input was being disregarded
in solution.

Firefly_1.003 (released Aug. 29th, 2010)


-------------------------------------------Delay feature is added to both Fader One Way and Fader Two Way components. This
delay (timer interval in milliseconds) allows you the ability to "wait" a set
time interval before beginning the Fade on it's next interval.
Data Log component has been completely re-written. The Data Log component will
store a set of values in a list. If the List Length is set to "0" then the log w
ill
store values indefinitely (or until you stop the recording or reset the log). Ot
herwise, the List Length will determine how many values to store in the log. If
the
Wrap input is set to True, then the values will begin re-recording over the prev
ious log values after it has reached the end of the List Length.
There is a new Playback component added to the Tool bar. The Playback component
will retrieve values from a text file (acceptable file types: .txt, .csv, and .
dat)
and will begin returning individual values at a given frame rate(s). You can inp
ut multiple framerates to simultaneously keep track of multiple outputs at diffe
rent
intervals.

Firefly_1.002 (released July 22nd, 2010)


--------------------------------------------

This is the first major public release of the Firefly Tool bar. New components
include:
Open/Close Port component. Open or close the serial port connection. To be used
in tandem with the Serial Read and Write components to establish the connection
between Grasshopper and the Arduino.
DUEM Read component. Using the FireFly Duemilanove sketch, this component will r
ead values for all corresponding digital and analog pins on the Arduino Duemilan
ove,
Diecimilla, or Lillypad board. Note: This component is meant to be used in tande
m with the FireFly Duemilanove Arduino Sketch.
DUEM Write component. Using the FireFly Duemilanove sketch, this component will
write values for all corresponding digital pins on an Arduino Duemilanove, Dieci
milla,
or Lillypad board. Note: This component is meant to be used in tandem with the F
ireFly Duemilanove Arduino Sketch.
MEGA Read component. Using the FireFly Mega sketch, this component will read val
ues for the corresponding digital and analog pins on an Arduino Mega board. Note
: This
component is meant to be used in tandem with the FireFly Mega Arduino Sketch.
MEGA Write component. Using the FireFly Mega sketch, this component will write v
alues to all corresponding digital pins on an Arduino Mega board. Note: This com
ponent
is meant to be used in tandem with the FireFly Mega Arduino Sketch.
Serial Read (Generic). Returns any string value coming over the Serial Port. Thi
s component does not have any specific Arduino sketch associated with it, which
means
you can create your own code to send a string value from the Arduino using the S
erial.println command.
Serial Write (Generic). Write any string value to the Serial Port. You will need
to also provide some Arduino code to process the string value coming over the S
erial Port.
Pachube Reader component. Read a file from any online Pachube feed. Will require
an online URL and your pachube API key. Visit www.pachube.com for more informat
ion.
Wii Nunchuck Reader component. This component will allow you to read all of the
sensor values (accelerometers, joystick, C and Z buttons) from the Wii Nunchuck.
Note: This component is meant to be used in tandem with the Wii Nunchuck Arduino
Sketch.
Binary Blink component. Oscillates 0's and 1's based on an incoming pattern of i
ntegers. Can be used to create intricate (HIGH/LOW) blinking patterns to be sent
to the
Serial Write components to control LED's, etc.
Fader One Way component. Fade from one value to another based on a single time i
nterval (ms).
Fader Two Way component. Fade between a minimum and maximum value based on the f
ade in and fade out time interval (ms).

Smoothing component. Smooth (or average) an incoming value based on a sampling l


evel (number of values).
Constrain component. Constrains a number to a specific numeric range (Domain).
Buffer component. Store a set of values in the buffer based on the buffer domain
. For example, a buffer domain of 0 To 10 will store the last 10 values. However
, if we
used a buffer domain of 5 to 15 then the buffer will store the 10 values, but on
ly those that occurred five frames before the current incoming value.
Data Log component. Stores incoming values in a list. Can include time stamps t
o each value.

You might also like