Improve flipper sw_flip/release
Support dual wound coils (maybe only via dual wound coil device?) 

Add sw_flip_and_release(ms) 

diff --git a/mpf/devices/flipper.py b/mpf/devices/flipper.py
index 58eedae23..8951e38a3 100644
--- a/mpf/devices/flipper.py
+++ b/mpf/devices/flipper.py
@@ -195,14 +195,17 @@ class Flipper(SystemWideDevice):
         Note this method will keep this flipper enabled until you call
         sw_release().
         """
-        # todo add support for other types of flipper coils
         # Send the activation switch press to the switch controller
         self.machine.switch_controller.process_switch(
             name=self.config['activation_switch'].name,
             state=1,
             logical=True)
 
-        self.config['main_coil'].enable()
+        if self.config['hold_coil']:
+            self.config['main_coil'].pulse()
+            self.config['hold_coil'].enable()
+        else:
+            self.config['main_coil'].enable()
 
     def sw_release(self):
         """Deactive the flipper via software as if the flipper button was released.
@@ -217,3 +220,6 @@ class Flipper(SystemWideDevice):
 
         # disable the flipper coil(s)
         self.config['main_coil'].disable()
+
+        if self.config['hold_coil']:
+            self.config['hold_coil'].disable()
diff --git a/mpf/tests/test_Flippers.py b/mpf/tests/test_Flippers.py
index a35f12dac..d62074cfb 100644
--- a/mpf/tests/test_Flippers.py
+++ b/mpf/tests/test_Flippers.py
@@ -91,8 +91,20 @@ class TestFlippers(MpfTestCase):
 
         self.machine.coils.c_flipper_main.enable = MagicMock()
         self.machine.coils.c_flipper_main.disable = MagicMock()
-        self.machine.flippers.f_test_hold_eos.sw_flip()
+        self.machine.flippers.f_test_single.sw_flip()
         self.machine.coils.c_flipper_main.enable.assert_called_once_with()
 
+        self.machine.flippers.f_test_single.sw_release()
+        self.machine.coils.c_flipper_main.disable.assert_called_once_with()
+
+        self.machine.coils.c_flipper_main.pulse = MagicMock()
+        self.machine.coils.c_flipper_main.disable = MagicMock()
+        self.machine.coils.c_flipper_hold.enable = MagicMock()
+        self.machine.coils.c_flipper_hold.disable = MagicMock()
+        self.machine.flippers.f_test_hold_eos.sw_flip()
+        self.machine.coils.c_flipper_main.pulse.assert_called_once_with()
+        self.machine.coils.c_flipper_hold.enable.assert_called_once_with()
+
         self.machine.flippers.f_test_hold_eos.sw_release()
         self.machine.coils.c_flipper_main.disable.assert_called_once_with()
+        self.machine.coils.c_flipper_hold.disable.assert_called_once_with()
['mpf/devices/flipper.py', 'mpf/tests/test_Flippers.py']