diff --git a/nanosoc_board/C_Cxx/fast_knn_demo/fast_knn_demo.cpp b/nanosoc_board/C_Cxx/fast_knn_demo/fast_knn_demo.cpp
index b3140f36e671c382f999ab6b4701c8e0de08d540..b9ab42aa36c31ab05c4e36846331fbe82d60ed0b 100644
--- a/nanosoc_board/C_Cxx/fast_knn_demo/fast_knn_demo.cpp
+++ b/nanosoc_board/C_Cxx/fast_knn_demo/fast_knn_demo.cpp
@@ -485,10 +485,12 @@ void DEMO_ROUTINE(){
             sprintf(text, "%s %8lld us", "Total time   ", total_time_mean);
             printf("%s\n", text);
             graphics.text(text, console_text_location, 600);
+
+            DEMO_done = false;
         }
     }
     if(BUTTON_X_pressed){
-        if (DEMO_done) {
+        if (!DEMO_RUN) {
             // Clear text area
             graphics.set_pen(BG);
             Rect blank(0, 18, 240, 284);
@@ -505,7 +507,7 @@ void DEMO_ROUTINE(){
             xtext = 0;
             ytext = 0;
 
-            DEMO_done = false;
+            // DEMO_done = false;
         }
 
         DEMO_RUN=true;
@@ -814,9 +816,9 @@ int main() {
 
     // Download program to nanosoc
     f_chdir("./programs");
-    fr = f_open(&fil, "fast_knn.hex", FA_READ);
+    fr = f_open(&fil, "fast_knn_demo.hex", FA_READ);
     if (FR_OK != fr && FR_EXIST != fr){
-       printf("f_open(fast_knn.hex) error: %s (%d)\n", FRESULT_str(fr), fr);
+       printf("f_open(fast_knn_demo.hex) error: %s (%d)\n", FRESULT_str(fr), fr);
        printf("Can't open demo program. Is SD card inserted?\n");
        return 1;
     }