char buf[256];
     snprintf(buf, sizeof buf, "./scripts/%s", cmd_name);
 
-    printf("Executing file '%s'\n---------------------------\n" , cmd_name);
+    printf("-----Executing file '%s'\n" , cmd_name);
     // run the Lua script
 
     int error = luaL_loadfile(lua_state, buf);
     //luaL_dofile(lua_state, buf);
     // close the Lua state
     lua_close(lua_state);
-    printf("-----------------Finished\n");
+    printf("\n-----Finished\n");
 }
 
 
     ==> A 544 byte buffer will do.
     **/
     //Pop cmd
-    UsbCommand *c = (UsbCommand *)lua_touserdata(L, 1);
-    luaL_argcheck(L, c != NULL, 1, "'UsbCommand' expected");
-    SendCommand(c);
+    size_t size;
+    const char *data = luaL_checklstring(L, 1, &size);
+    if(size != sizeof(UsbCommand))
+    {
+        printf("Got data size %d, expected %d" , size,sizeof(UsbCommand));
+        lua_pushstring(L,"Wrong data size");
+        return 1;
+    }
+
+//    UsbCommand c = (*data);
+    SendCommand(data);
     return 0;
+    //UsbCommand *c = (UsbCommand *)lua_touserdata(L, 1);
+    //luaL_argcheck(L, c != NULL, 1, "'UsbCommand' expected");
+
+    //SendCommand(c);
+    //return 0;
 }
 /**
  * @brief The following params expected:
     printf("in l_WaitForResponseTimeout, got cmd 0x%0x\n",(int) cmd);
     //UsbCommand response;
 
-    //We allocate the usbcommand as userdata on the Lua-stack
+     //We allocate the usbcommand as userdata on the Lua-stack
     size_t nbytes = sizeof(UsbCommand);
 
     UsbCommand *response = (UsbCommand *)lua_newuserdata(L, nbytes);