diff --git a/test_anim/minimatrixrpi.cpp b/test_anim/minimatrixrpi.cpp
index 005c7e3df6fb615cf2292d4602391da5ffc21c52..972e625a46a7d46eacb30fa52ccacdaf7f05c16a 100644
--- a/test_anim/minimatrixrpi.cpp
+++ b/test_anim/minimatrixrpi.cpp
@@ -8,7 +8,7 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <string>
-
+#include <poll.h>
 
 int main()
 {
@@ -19,17 +19,18 @@ int main()
     printf("Going idle\n");
     while (1)
     {
+        struct pollfd mypoll = {STDIN_FILENO, POLLIN | POLLPRI};
         ola_run_once();
         if (matrixserver.receive())
         {
             spisender.updateFrame(matrixserver.getFrame());
         }
+        if (poll(&mypoll, 1, 0))
+        {
+            break;
+        }
     }
-    
-
 
-    char k;
-    scanf("%c", &k);
     printf("Ending\n");
     ola_deinit();
 }