int btInput; int startT, endT, count = 0; int feet; FILE* fp; void setup() { // put your setup code here, to run once: Serial1.begin(9600); Serial.begin(9600); startT = millis(); system("echo 0 > /tmp/edRover"); } void loop() { // put your main code here, to run repeatedly: endT = millis(); count++; if (endT - startT > 11000) { fp = fopen("/tmp/edRover", "r"); startT = millis(); fscanf(fp,"%d",&feet); Serial1.println(feet); fclose(fp); } delay(500); system("read feet < /dev/ttymcu0; echo $feet > /tmp/edRover"); btInput = 0; if (Serial1.available() > 0) { btInput = Serial1.read(); Serial.println(btInput); } switch (btInput) { case 'S': system("echo 'S' > /dev/ttymcu0"); break; case 'A': system("echo 'A' > /dev/ttymcu0"); break; case 'L': system("echo 'L' > /dev/ttymcu0"); break; case 'R': system("echo 'R' > /dev/ttymcu0"); break; case 'B': system("echo 'B' > /dev/ttymcu0"); break; default: break; } }