Add a timeout if there is no response from Mirobot
Remove unused dependency
Separate out the connection phases, socket and mirobot
Enable firmware to be updated with a manual reset and add functionality to update the UI