diff --git a/ohmpi.py b/ohmpi.py
index 27183c6beee7df38ab8b9f1eed11d5007fb84793..ad000458434fa9eb7ce9135d07e72f408f21bcb7 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -60,7 +60,7 @@ class OhmPi(object):
         if on_pi is None:
             _, on_pi = OhmPi.get_platform()
 
-        self.sequence = sequence
+        self._sequence = sequence
         self.use_mux = use_mux
         self.on_pi = on_pi  # True if run from the RaspberryPi with the hardware, otherwise False for random data
         self.status = 'idle'  # either running or idle
@@ -143,6 +143,22 @@ class OhmPi(object):
         self.cmd_thread = threading.Thread(target=self._control)
         self.cmd_thread.start()
 
+    @property
+    def sequence(self):
+        """Gets or sets sequence"""
+        if self._sequence is not None:
+            assert isinstance(self._sequence, np.ndarray)
+        return self._sequence
+
+    @sequence.setter
+    def sequence(self, sequence):
+        if sequence is not None:
+            assert isinstance(sequence, np.ndarray)
+            self.use_mux = True
+        else:
+            self.use_mux = False
+        self._sequence = sequence
+
     def _control(self):
         def on_message(client, userdata, message):
             command = message.payload.decode('utf-8')