diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile
index 34a240611023e74f18e6b989b79034835c755753..5f37271a4613e1f287c6983e1d941a1521090f4b 100644
--- a/Builds/Linux/Makefile
+++ b/Builds/Linux/Makefile
@@ -88,6 +88,8 @@ OBJECTS := \
   $(OBJDIR)/SpikeDetector_300d85e7.o \
   $(OBJDIR)/AudioNode_94606ff3.o \
   $(OBJDIR)/EventNode_95c842b7.o \
+  $(OBJDIR)/FPGAOutputEditor_cfe00f8a.o \
+  $(OBJDIR)/ArduinoOutputEditor_1118f008.o \
   $(OBJDIR)/ChannelSelector_c1430874.o \
   $(OBJDIR)/ParameterEditor_91f62ae8.o \
   $(OBJDIR)/SpikeDisplayEditor_e1812c1.o \
@@ -376,6 +378,16 @@ $(OBJDIR)/EventNode_95c842b7.o: ../../Source/Processors/EventNode.cpp
 	@echo "Compiling EventNode.cpp"
 	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
 
+$(OBJDIR)/FPGAOutputEditor_cfe00f8a.o: ../../Source/Processors/Editors/FPGAOutputEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FPGAOutputEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ArduinoOutputEditor_1118f008.o: ../../Source/Processors/Editors/ArduinoOutputEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ArduinoOutputEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
 $(OBJDIR)/ChannelSelector_c1430874.o: ../../Source/Processors/Editors/ChannelSelector.cpp
 	-@mkdir -p $(OBJDIR)
 	@echo "Compiling ChannelSelector.cpp"
diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
index 3c3c1e13ca5a501c56a667787051627252e16791..5a4aa6cee559b966da8e5febdc8cdad54dff9405 100644
--- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
+++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
@@ -62,6 +62,8 @@
 		4BE0DDA01B73223EF0BD934A = { isa = PBXBuildFile; fileRef = 3DD0741FCFBC7563EC722D9B; };
 		08B501E0D7764C6B613AF529 = { isa = PBXBuildFile; fileRef = B7750B27E4F3748ECCCCF69D; };
 		9CBA3837CC8CAA03A03F2D9C = { isa = PBXBuildFile; fileRef = FA57CE4F63FF1592D6B3F9B5; };
+		9C77BFFE7BA865E20121E707 = { isa = PBXBuildFile; fileRef = 7738196148E539781B237854; };
+		BA64AA28A3E0DC10AB0A9380 = { isa = PBXBuildFile; fileRef = DAFD5D2E1F875321584C7147; };
 		BCB6C021A03F0AB0248C7F8A = { isa = PBXBuildFile; fileRef = 51D2678E9F30DC261CCB61B0; };
 		632C915D01C42D27E828BFA9 = { isa = PBXBuildFile; fileRef = 47ECF9384C1D27EB2FBEBF9E; };
 		DD22A06702F4CF995893DD5C = { isa = PBXBuildFile; fileRef = F0B09605D4108F0F94EF3B57; };
@@ -278,6 +280,10 @@
 		12866D44BE115E8837468F48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioNode.h; path = ../../Source/Processors/AudioNode.h; sourceTree = SOURCE_ROOT; };
 		FA57CE4F63FF1592D6B3F9B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EventNode.cpp; path = ../../Source/Processors/EventNode.cpp; sourceTree = SOURCE_ROOT; };
 		32163C956C8A6F5C1DD7FE7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EventNode.h; path = ../../Source/Processors/EventNode.h; sourceTree = SOURCE_ROOT; };
+		7738196148E539781B237854 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FPGAOutputEditor.cpp; path = ../../Source/Processors/Editors/FPGAOutputEditor.cpp; sourceTree = SOURCE_ROOT; };
+		5F43022E89D254273CF827A5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FPGAOutputEditor.h; path = ../../Source/Processors/Editors/FPGAOutputEditor.h; sourceTree = SOURCE_ROOT; };
+		DAFD5D2E1F875321584C7147 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ArduinoOutputEditor.cpp; path = ../../Source/Processors/Editors/ArduinoOutputEditor.cpp; sourceTree = SOURCE_ROOT; };
+		5F0DC90995C8E7BB7E3176F7 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ArduinoOutputEditor.h; path = ../../Source/Processors/Editors/ArduinoOutputEditor.h; sourceTree = SOURCE_ROOT; };
 		51D2678E9F30DC261CCB61B0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ChannelSelector.cpp; path = ../../Source/Processors/Editors/ChannelSelector.cpp; sourceTree = SOURCE_ROOT; };
 		1A64B7009173729093BA3D96 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ChannelSelector.h; path = ../../Source/Processors/Editors/ChannelSelector.h; sourceTree = SOURCE_ROOT; };
 		47ECF9384C1D27EB2FBEBF9E = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ParameterEditor.cpp; path = ../../Source/Processors/Editors/ParameterEditor.cpp; sourceTree = SOURCE_ROOT; };
@@ -522,6 +528,10 @@
 				0C5335B0E57C9DC92FC57E5F,
 				7738F51AE0EC63D76EE0F761 ); name = Visualization; sourceTree = "<group>"; };
 		953CC35B9116404D6AA8D1C7 = { isa = PBXGroup; children = (
+				7738196148E539781B237854,
+				5F43022E89D254273CF827A5,
+				DAFD5D2E1F875321584C7147,
+				5F0DC90995C8E7BB7E3176F7,
 				51D2678E9F30DC261CCB61B0,
 				1A64B7009173729093BA3D96,
 				47ECF9384C1D27EB2FBEBF9E,
@@ -791,6 +801,8 @@
 				4BE0DDA01B73223EF0BD934A,
 				08B501E0D7764C6B613AF529,
 				9CBA3837CC8CAA03A03F2D9C,
+				9C77BFFE7BA865E20121E707,
+				BA64AA28A3E0DC10AB0A9380,
 				BCB6C021A03F0AB0248C7F8A,
 				632C915D01C42D27E828BFA9,
 				DD22A06702F4CF995893DD5C,
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj b/Builds/VisualStudio2010/open-ephys.vcxproj
index 498abcc035d717062c5aef2d6586e465bd1e6831..757024d390761831d34aa8994095d51da2c7de66 100644
--- a/Builds/VisualStudio2010/open-ephys.vcxproj
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj
@@ -167,6 +167,8 @@
     <ClCompile Include="..\..\Source\Processors\SpikeDetector.cpp"/>
     <ClCompile Include="..\..\Source\Processors\AudioNode.cpp"/>
     <ClCompile Include="..\..\Source\Processors\EventNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\FPGAOutputEditor.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\ChannelSelector.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\ParameterEditor.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.cpp"/>
@@ -270,6 +272,8 @@
     <ClInclude Include="..\..\Source\Processors\SpikeDetector.h"/>
     <ClInclude Include="..\..\Source\Processors\AudioNode.h"/>
     <ClInclude Include="..\..\Source\Processors\EventNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\FPGAOutputEditor.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\ChannelSelector.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\ParameterEditor.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\SpikeDisplayEditor.h"/>
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj.filters b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
index e595dd8eb531f24211382fc47102862cdd3e267f..20cc87fdc966ab8d218c6251a45e58aa8dac8ce3 100644
--- a/Builds/VisualStudio2010/open-ephys.vcxproj.filters
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
@@ -370,6 +370,12 @@
     <ClCompile Include="..\..\Source\Processors\EventNode.cpp">
       <Filter>open-ephys\Source\Processors</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\FPGAOutputEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\Source\Processors\Editors\ChannelSelector.cpp">
       <Filter>open-ephys\Source\Processors\Editors</Filter>
     </ClCompile>
@@ -675,6 +681,12 @@
     <ClInclude Include="..\..\Source\Processors\EventNode.h">
       <Filter>open-ephys\Source\Processors</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\FPGAOutputEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\Source\Processors\Editors\ChannelSelector.h">
       <Filter>open-ephys\Source\Processors\Editors</Filter>
     </ClInclude>
diff --git a/Source/Processors/ArduinoOutput.cpp b/Source/Processors/ArduinoOutput.cpp
index 6a0aa9034588f0034951430d3c38b4ff127014d5..910da5fbc1479618c5dc1876c74d12f6b0b640f2 100755
--- a/Source/Processors/ArduinoOutput.cpp
+++ b/Source/Processors/ArduinoOutput.cpp
@@ -36,11 +36,11 @@ ArduinoOutput::~ArduinoOutput()
 
 }
 
-// AudioProcessorEditor* ArduinoOutput::createEditor()
-// {
-// 	editor = new ArduinoOutputEditor(this);
-// 	return editor;
-// }
+AudioProcessorEditor* ArduinoOutput::createEditor()
+{
+    editor = new ArduinoOutputEditor(this);
+ 	return editor;
+}
 
 void ArduinoOutput::handleEvent(int eventType, MidiMessage& event)
 {
@@ -64,6 +64,9 @@ void ArduinoOutput::handleEvent(int eventType, MidiMessage& event)
             arduino.sendDigital(13, ARD_HIGH);
             state = true;
         }
+
+        //ArduinoOutputEditor* ed = (ArduinoOutputEditor*) getEditor();
+        //ed->receivedEvent();
     }
     
 }
diff --git a/Source/Processors/ArduinoOutput.h b/Source/Processors/ArduinoOutput.h
index 1b1ec3a5bd2b09ce22195ce8f210adf0afa65cde..d766669ac863d150d06270756baad3e1f0afb2e5 100755
--- a/Source/Processors/ArduinoOutput.h
+++ b/Source/Processors/ArduinoOutput.h
@@ -26,9 +26,11 @@
 
 #include "../../JuceLibraryCode/JuceHeader.h"
 
+#include "Editors/ArduinoOutputEditor.h"
 #include "Serial/ofArduino.h"
 #include "GenericProcessor.h"
 
+
 /** 
 
 	*UNDER CONSTRUCTION*
@@ -57,7 +59,7 @@ public:
     bool enable();
     bool disable();
     
-	//AudioProcessorEditor* createEditor();
+	AudioProcessorEditor* createEditor();
 
 	bool isSink() {return true;}
 	
diff --git a/Source/Processors/Editors/ArduinoOutputEditor.cpp b/Source/Processors/Editors/ArduinoOutputEditor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..67f59e54f701cb5cc53624603d5debffaf983ede
--- /dev/null
+++ b/Source/Processors/Editors/ArduinoOutputEditor.cpp
@@ -0,0 +1,89 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#include "ArduinoOutputEditor.h"
+#include <stdio.h>
+
+
+ArduinoOutputEditor::ArduinoOutputEditor (GenericProcessor* parentNode) 
+	: GenericEditor(parentNode)
+
+{
+
+	accumulator = 0;
+
+	desiredWidth = 150;
+
+	Image im;
+	im = ImageCache::getFromMemory (BinaryData::ArduinoIcon_png, 
+	 								BinaryData::ArduinoIcon_pngSize);
+
+	icon = new ImageIcon(im);
+	addAndMakeVisible(icon);
+	icon->setBounds(15,15,120,120);
+
+	icon->setOpacity(0.3f);
+
+}
+
+ArduinoOutputEditor::~ArduinoOutputEditor()
+{
+	deleteAllChildren();
+}
+
+void ArduinoOutputEditor::receivedEvent()
+{
+	
+	icon->setOpacity(0.8f);
+	startTimer(50);
+
+}
+
+void ArduinoOutputEditor::timerCallback()
+{
+
+	repaint();
+
+	accumulator++;
+
+	if (isFading) {
+
+		if (accumulator > 15.0)
+		{
+			stopTimer();
+			isFading = false;
+		}
+
+	} else {
+
+		if (accumulator < 10.0)
+		{
+			icon->setOpacity(0.8f-(0.05*float(accumulator)));
+			accumulator++;
+		} else {
+			icon->setOpacity(0.3f);
+			stopTimer();
+			accumulator = 0;
+		}
+	}
+}
\ No newline at end of file
diff --git a/Source/Processors/Editors/ArduinoOutputEditor.h b/Source/Processors/Editors/ArduinoOutputEditor.h
new file mode 100644
index 0000000000000000000000000000000000000000..b9919b29086a035e3d32f0184dcd7db3a0d0dc1a
--- /dev/null
+++ b/Source/Processors/Editors/ArduinoOutputEditor.h
@@ -0,0 +1,55 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef __ARDUINOOUTPUTEDITOR_H_28EB4CC9__
+#define __ARDUINOOUTPUTEDITOR_H_28EB4CC9__
+
+#include "../../../JuceLibraryCode/JuceHeader.h"
+#include "GenericEditor.h"
+#include "ImageIcon.h"
+
+class ImageIcon;
+
+class ArduinoOutputEditor : public GenericEditor
+
+{
+public:
+	ArduinoOutputEditor (GenericProcessor* parentNode);
+	virtual ~ArduinoOutputEditor();
+
+	void receivedEvent();
+
+	ImageIcon* icon;
+
+private:	
+
+	void timerCallback();
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ArduinoOutputEditor);
+
+};
+
+
+
+
+#endif  // __ARDUINOOUTPUTEDITOR_H_28EB4CC9__
diff --git a/Source/Processors/Editors/FPGAOutputEditor.cpp b/Source/Processors/Editors/FPGAOutputEditor.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ba764a0aed3b4b504621d24932e26b16878b9e26
--- /dev/null
+++ b/Source/Processors/Editors/FPGAOutputEditor.cpp
@@ -0,0 +1,90 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "FPGAOutputEditor.h"
+#include <stdio.h>
+
+
+FPGAOutputEditor::FPGAOutputEditor (GenericProcessor* parentNode) 
+	: GenericEditor(parentNode)
+
+{
+
+	accumulator = 0;
+
+	desiredWidth = 150;
+
+	Image im;
+	im = ImageCache::getFromMemory (BinaryData::OpenEphysBoardLogoBlack_png, 
+	 								BinaryData::OpenEphysBoardLogoBlack_pngSize);
+
+	icon = new ImageIcon(im);
+	addAndMakeVisible(icon);
+	icon->setBounds(15,15,120,120);
+
+	icon->setOpacity(0.3f);
+
+}
+
+FPGAOutputEditor::~FPGAOutputEditor()
+{
+	deleteAllChildren();
+}
+
+void FPGAOutputEditor::receivedEvent()
+{
+	
+	icon->setOpacity(0.8f);
+	startTimer(50);
+
+}
+
+void FPGAOutputEditor::timerCallback()
+{
+
+	repaint();
+
+	accumulator++;
+
+	if (isFading) {
+
+		if (accumulator > 15.0)
+		{
+			stopTimer();
+			isFading = false;
+		}
+
+	} else {
+
+		if (accumulator < 10.0)
+		{
+			icon->setOpacity(0.8f-(0.05*float(accumulator)));
+			accumulator++;
+		} else {
+			icon->setOpacity(0.3f);
+			stopTimer();
+			accumulator = 0;
+		}
+	}
+}
\ No newline at end of file
diff --git a/Source/Processors/Editors/FPGAOutputEditor.h b/Source/Processors/Editors/FPGAOutputEditor.h
new file mode 100644
index 0000000000000000000000000000000000000000..7b39934159ce9384a8d8181c1d0f5a3ccb5c75c2
--- /dev/null
+++ b/Source/Processors/Editors/FPGAOutputEditor.h
@@ -0,0 +1,55 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef __FPGAOUTPUTEDITOR_H_5A646CD3__
+#define __FPGAOUTPUTEDITOR_H_5A646CD3__
+
+
+#include "../../../JuceLibraryCode/JuceHeader.h"
+#include "GenericEditor.h"
+#include "ImageIcon.h"
+
+class ImageIcon;
+
+class FPGAOutputEditor : public GenericEditor
+
+{
+public:
+	FPGAOutputEditor (GenericProcessor* parentNode);
+	virtual ~FPGAOutputEditor();
+
+	void receivedEvent();
+
+	ImageIcon* icon;
+
+private:	
+
+	void timerCallback();
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FPGAOutputEditor);
+
+};
+
+
+
+#endif  // __FPGAOUTPUTEDITOR_H_5A646CD3__
diff --git a/Source/Processors/Editors/SourceNodeEditor.cpp b/Source/Processors/Editors/SourceNodeEditor.cpp
index a9eb397a15f906c5e63824b9971242dedfda2b8a..0bda2de511b19d23f2ec5243eccd0f87281d492b 100755
--- a/Source/Processors/Editors/SourceNodeEditor.cpp
+++ b/Source/Processors/Editors/SourceNodeEditor.cpp
@@ -44,6 +44,10 @@ SourceNodeEditor::SourceNodeEditor (GenericProcessor* parentNode)
 	 } else if (getName().equalsIgnoreCase("File Reader")) {
 	 	im = ImageCache::getFromMemory (BinaryData::FileReaderIcon_png, 
 	 								    BinaryData::FileReaderIcon_pngSize);	
+	} else if (getName().equalsIgnoreCase("Custom FPGA")) {
+		im = ImageCache::getFromMemory (BinaryData::OpenEphysBoardLogoGray_png, 
+	 								    BinaryData::OpenEphysBoardLogoGray_pngSize);	
+
 	} else {
 	 	im = ImageCache::getFromMemory (BinaryData::DefaultDataSource_png, 
 	 								    BinaryData::DefaultDataSource_pngSize);
@@ -53,6 +57,10 @@ SourceNodeEditor::SourceNodeEditor (GenericProcessor* parentNode)
 	 addAndMakeVisible(icon);
 	 icon->setBounds(50,40,70,70);
 
+	 if (getName().equalsIgnoreCase("Custom FPGA")) {
+		icon->setBounds(20,15,120,120);
+	}
+
 	//Array<int> values;
 	//values.add(1); values.add(2), values.add(3);
 
diff --git a/Source/Processors/Editors/WiFiOutputEditor.h b/Source/Processors/Editors/WiFiOutputEditor.h
index 9f63487c883dc5c523792070d3575b3aefc1ec73..e86eaf27d9d22ea725ba526c049053553dd3bd4a 100755
--- a/Source/Processors/Editors/WiFiOutputEditor.h
+++ b/Source/Processors/Editors/WiFiOutputEditor.h
@@ -27,7 +27,6 @@
 #include "GenericEditor.h"
 #include "ImageIcon.h"
 
-class FilterViewport;
 class ImageIcon;
 
 class WiFiOutputEditor : public GenericEditor
diff --git a/Source/Processors/FPGAOutput.cpp b/Source/Processors/FPGAOutput.cpp
index 6ee3b0fa63d89ea42c55287b895b65d7ec823a24..de81e47edbd77b7470205cbeb072969bd7fc296f 100755
--- a/Source/Processors/FPGAOutput.cpp
+++ b/Source/Processors/FPGAOutput.cpp
@@ -36,11 +36,11 @@ FPGAOutput::~FPGAOutput()
 
 }
 
-// AudioProcessorEditor* FPGAOutput::createEditor()
-// {
-// 	editor = new FPGAOutputEditor(this);
-// 	return editor;
-// }
+AudioProcessorEditor* FPGAOutput::createEditor()
+{
+	editor = new FPGAOutputEditor(this);
+	return editor;
+}
 
 void FPGAOutput::handleEvent(int eventType, MidiMessage& event)
 {
diff --git a/Source/Processors/FPGAOutput.h b/Source/Processors/FPGAOutput.h
index 32c80cdb6946bb089a21e32133ef6be6c6f21f52..03bd57a2533bf5da9d66c01b03da52d0e17ff5ea 100755
--- a/Source/Processors/FPGAOutput.h
+++ b/Source/Processors/FPGAOutput.h
@@ -28,11 +28,9 @@
 
 #include "../../JuceLibraryCode/JuceHeader.h"
 #include "GenericProcessor.h"
-//#include "Editors/WiFiOutputEditor.h"
+#include "Editors/FPGAOutputEditor.h"
 
 
-class FilterViewport;
-
 /**
 
   Allows the signal chain to send outputs to the Open Ephys acquisition board.
@@ -56,7 +54,7 @@ public:
 
     void handleEvent(int eventType, MidiMessage& event);
     
-	//AudioProcessorEditor* createEditor();
+	AudioProcessorEditor* createEditor();
 
 	bool isSink() {return true;}
 	
diff --git a/open-ephys.jucer b/open-ephys.jucer
index 9892ec4c8cbb0cc5d2f6fd00d38aaf3f7fbd00be..855cd3db1a35dd7b5c9ffac7c092107d30a3fb98 100644
--- a/open-ephys.jucer
+++ b/open-ephys.jucer
@@ -274,6 +274,14 @@
         <FILE id="hGnGAjh" name="EventNode.cpp" compile="1" resource="0" file="Source/Processors/EventNode.cpp"/>
         <FILE id="dUtRN6" name="EventNode.h" compile="0" resource="0" file="Source/Processors/EventNode.h"/>
         <GROUP id="AqvwO6w" name="Editors">
+          <FILE id="mvixd58" name="FPGAOutputEditor.cpp" compile="1" resource="0"
+                file="Source/Processors/Editors/FPGAOutputEditor.cpp"/>
+          <FILE id="phTDDOR" name="FPGAOutputEditor.h" compile="0" resource="0"
+                file="Source/Processors/Editors/FPGAOutputEditor.h"/>
+          <FILE id="oYeB8Hh" name="ArduinoOutputEditor.cpp" compile="1" resource="0"
+                file="Source/Processors/Editors/ArduinoOutputEditor.cpp"/>
+          <FILE id="xfwOAJs" name="ArduinoOutputEditor.h" compile="0" resource="0"
+                file="Source/Processors/Editors/ArduinoOutputEditor.h"/>
           <FILE id="rZGNxjv" name="ChannelSelector.cpp" compile="1" resource="0"
                 file="Source/Processors/Editors/ChannelSelector.cpp"/>
           <FILE id="Yga4B3Z" name="ChannelSelector.h" compile="0" resource="0"