diff --git a/.gitignore b/.gitignore
index 66a8990f..cbbbfd24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,3 +61,9 @@ ODrive\.files
ODrive\.includes
Firmware/Tests/bin/
+
+# Electron-builder output
+GUI/dist_electron
+
+# Node Modules
+GUI/node_modules
diff --git a/GUI/README.md b/GUI/README.md
index 58c7b6d5..6849cc57 100644
--- a/GUI/README.md
+++ b/GUI/README.md
@@ -1,6 +1,6 @@
# odrive_gui
-Python requirements: `pip install python-socketio eventlet odrive`
+Python requirements: `pip install flask flask_socketio flask_cors odrive`
If the default odrive python package is not desired, the path to the modules can be passed as command line arguments.
diff --git a/GUI/server/odrive_server.py b/GUI/server/odrive_server.py
index 5d03c604..d0fa533b 100644
--- a/GUI/server/odrive_server.py
+++ b/GUI/server/odrive_server.py
@@ -20,7 +20,7 @@ app.config.update(
SESSION_COOKIE_SAMESITE='None'
)
CORS(app, support_credentials=True)
-socketio = SocketIO(app, cors_allowed_origins="*")
+socketio = SocketIO(app, cors_allowed_origins="*", async_mode = "threading")
def get_all_odrives():
globals()['odrives'] = []
@@ -98,6 +98,8 @@ def set_property(message):
globals()['inUse'] = True
print("From setProperty event handler: " + str(message))
postVal(globals()['odrives'], message["path"].split('.'), message["val"], message["type"])
+ val = getVal(globals()['odrives'], message["path"].split('.'))
+ emit('ODriveProperty', json.dumps({"path": message["path"], "val": val}))
globals()['inUse'] = False
@socketio.on('callFunction')
diff --git a/GUI/src/App.vue b/GUI/src/App.vue
index 94693e3f..4b1f98d8 100644
--- a/GUI/src/App.vue
+++ b/GUI/src/App.vue
@@ -61,7 +61,7 @@