diff --git a/bin/fan_control.py b/bin/fan_control.py
new file mode 100755
index 0000000..87dc7a9
--- /dev/null
+++ b/bin/fan_control.py
@@ -0,0 +1,57 @@
+#!/usr/bin/python -u
+
+import sys
+#from gi.repository import GObject
+import gobject
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+import Openbmc
+
+DBUS_NAME = 'org.openbmc.control.Fans'
+OBJ_PATH = '/org/openbmc/control/fans'
+IFACE_NAME = 'org.openbmc.control.Fans'
+
+FAN_BUS = 'org.openbmc.sensors.hwmon'
+FAN_OBJS = [
+	'/org/openbmc/sensors/speed/fan1',
+	'/org/openbmc/sensors/speed/fan2',
+	'/org/openbmc/sensors/speed/fan3',
+	'/org/openbmc/sensors/speed/fan4',
+	'/org/openbmc/sensors/speed/fan5',
+	'/org/openbmc/sensors/speed/fan6',
+]
+FAN_IFACE = 'org.openbmc.SensorValue'
+
+class FanControl(Openbmc.DbusProperties):
+	def __init__(self,bus,name):
+		Openbmc.DbusProperties.__init__(self)
+		dbus.service.Object.__init__(self,bus,name)
+		self.ObjectAdded(name,IFACE_NAME)
+		self.Set(IFACE_NAME,"floor",250)
+		self.Set(IFACE_NAME,"ceiling",255)
+		self.fan_intf = []
+		## create interface proxies to all fans
+		for fan in FAN_OBJS:
+			print "Initializing fan: "+fan
+			obj = bus.get_object(FAN_BUS,fan)
+			fan_intf.append(dbus.Interface(obj,FAN_IFACE))
+				
+	def setMax(self):
+		print "Setting fans to max"
+		for intf in self.fan_intf:
+			intf.setValue(dbus.UInt32(255))
+		
+
+if __name__ == '__main__':
+	
+	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+	bus = Openbmc.getDBus()
+	name = dbus.service.BusName(DBUS_NAME,bus)
+	fan_control = FanControl(bus,OBJ_PATH)
+	mainloop = gobject.MainLoop()
+   
+	print "Starting fan control"
+	fan_control.setMax()
+	mainloop.run()
+
