diff --git a/quad/scripts/tests/test_logging.rb b/quad/scripts/tests/test_logging.rb
index 58d16f73caa7837e2b9aa82dfa48e0e7bbb257d4..f5b7c51b473f06ed692d57e1c9a1c95cbe2614bb 100644
--- a/quad/scripts/tests/test_logging.rb
+++ b/quad/scripts/tests/test_logging.rb
@@ -11,22 +11,40 @@ require script_dir + "/testing_library"
 bin_dir = script_dir + "/../../bin/"
 Dir.chdir(bin_dir)
 
-Timeout::timeout(30) {
 
-  puts("Setting up...")
+puts("Setting up...")
 
-  # Start virtual quad
-  quad_pid = Process.spawn("./virt-quad start -q",
-                           { :rlimit_as => 536870912, # 512 MiB total RAM
-                             :rlimit_stack => 1048576}) # 1 MiB stack
+# Start virtual quad
+quad_pid = Process.spawn("./virt-quad start -q",
+                         { :rlimit_as => 536870912, # 512 MiB total RAM
+                           :rlimit_stack => 1048576}) # 1 MiB stack
 
-  sleep 0.5
+sleep 0.5
 
-  # Set RC switches
-  set_gear GEAR_OFF
-  set_flap FLAP_OFF
+# Set RC switches
+set_gear GEAR_OFF
+set_flap FLAP_OFF
+
+# Set initial quad orientation (flat on the ground, facing forward)
+`./virt-quad set i2c_imu_x 0`
+`./virt-quad set i2c_imu_y 0`
+`./virt-quad set i2c_imu_z -1`
+`./virt-quad set rc_roll 0.498`
+`./virt-quad set rc_pitch 0.497`
+`./virt-quad set rc_yaw 0.498`
+
+
+#################
+#  Begin Tests
+#################
+
+begin
+
+  puts "------------------------------------------"
+  puts "-- Beginning logging test..."
+  puts "------------------------------------------"
 
-  # Set initial quad orientation (flat on the ground, facing forward)
+  # Set initial quad orientation (flat on ground, facing forward)
   `./virt-quad set i2c_imu_x 0`
   `./virt-quad set i2c_imu_y 0`
   `./virt-quad set i2c_imu_z -1`
@@ -34,84 +52,62 @@ Timeout::timeout(30) {
   `./virt-quad set rc_pitch 0.497`
   `./virt-quad set rc_yaw 0.498`
 
+  puts("Turning on GEAR...")
+  set_gear GEAR_ON
+  set_flap FLAP_ON
+  sleep 0.015
 
-  #################
-  #  Begin Tests
-  #################
-
-  begin
-
-    puts "------------------------------------------"
-    puts "-- Beginning logging test..."
-    puts "------------------------------------------"
-
-    # Set initial quad orientation (flat on ground, facing forward)
-    `./virt-quad set i2c_imu_x 0`
-    `./virt-quad set i2c_imu_y 0`
-    `./virt-quad set i2c_imu_z -1`
-    `./virt-quad set rc_roll 0.498`
-    `./virt-quad set rc_pitch 0.497`
-    `./virt-quad set rc_yaw 0.498`
-
-    puts("Turning on GEAR...")
-    set_gear GEAR_ON
-    set_flap FLAP_ON
-    sleep 0.015
-
-    puts("Increasing Thrust to half maximum...")
-    for i in (THROTTLE_MIN..THROTTLE_MID).step(0.01)
-      set_throttle(i)
-      sleep 0.005
-    end
-
-    puts("Hovering for 3 seconds")
-    sleep 3
+  puts("Increasing Thrust to half maximum...")
+  for i in (THROTTLE_MIN..THROTTLE_MID).step(0.01)
+    set_throttle(i)
+    sleep 0.005
+  end
 
-    puts("Switching to autonomous and hovering for 3 seconds")
-    set_flap FLAP_OFF
-    sleep 3
+  puts("Hovering for 1 seconds")
+  sleep 1
 
-    puts("Switch back to manual, relaxing thrust to zero")
-    set_flap FLAP_ON
-    i = THROTTLE_MID
-    while i > THROTTLE_MIN
-      i -= 0.01
-      set_throttle(i)
-      sleep 0.005
-    end
+  puts("Switching to autonomous and hovering for 1 seconds")
+  set_flap FLAP_OFF
+  sleep 1
+
+  puts("Switch back to manual, relaxing thrust to zero")
+  set_flap FLAP_ON
+  i = THROTTLE_MID
+  while i > THROTTLE_MIN
+    i -= 0.01
+    set_throttle(i)
+    sleep 0.005
+  end
 
-    # Get logs
+  # Get logs
 
-    Thread.new {
-      sleep 1
-      puts("Swiching off GEAR...")
-      set_gear GEAR_OFF
-    }
+  Thread.new {
+    sleep 1
+    puts("Switching off GEAR...")
+    set_gear GEAR_OFF
+  }
 
-    logs = []
+  puts("Preparing to receive logs. This might take a while. You can ctrl-c to quit early.")
+  logs = []
 
-    begin
-      while true
-        logs.push(recv_packet)
-      end
-    rescue Timeout::Error
-      puts "No logs left"
+  begin
+    while true
+      logs.push(recv_packet)
     end
+  rescue Exception
+  end
 
-    if logs.length == 2
-      log_data = logs[1].split("\n")
-      for data in log_data
-        puts data
-      end
-      p log_data.length
-    end
+  for data in logs
+    puts data
+  end
 
-    puts "------------------------------------------"
+  puts "#{logs.length} total logs recieved"
 
-  ensure
+  puts "------------------------------------------"
 
-    Process.kill(9, quad_pid)
-    Process.wait(quad_pid)
+ensure
 
-  end
-}
+  Process.kill(9, quad_pid)
+  Process.wait(quad_pid)
+
+end
diff --git a/quad/scripts/tests/testing_library.rb b/quad/scripts/tests/testing_library.rb
index aad1ba85660bc1f2d2a9e50dfbeacc4a8243e08e..a21202caf18568346dd25a747b33fe1208bdcfce 100644
--- a/quad/scripts/tests/testing_library.rb
+++ b/quad/scripts/tests/testing_library.rb
@@ -72,15 +72,19 @@ def send_packet(bytes)
 end
 
 def recv_packet
+  c = 'c'
+  msg = []
   fifo = nil
-  Timeout::timeout(5) {
-    fifo = File.open(UART_TX)
+  Timeout::timeout(3) {
+    fifo = File.open(UART_TX, "r+")
   }
 
   # Receive the header
   msg = []
   for i in 1..7
-    c = fifo.read(1)
+    Timeout::timeout(3) {
+      c = fifo.read(1)
+    }
     msg.push(c)
   end
 
@@ -89,7 +93,9 @@ def recv_packet
 
   msg = []
   for i in 1..length
-    c = fifo.read(1)
+    Timeout::timeout(3) {
+      c = fifo.read(1)
+    }
     msg.push(c)
   end
   fifo.close
diff --git a/quad/test_logging/Makefile b/quad/test_logging/Makefile
deleted file mode 100644
index d30eb0102cea878e910d440437f4c185e2562b30..0000000000000000000000000000000000000000
--- a/quad/test_logging/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-CC=gcc
-test: test.c
-	$(CC) -o test_log -I. -I../src/quad_app -I../src/computation_graph test.c ../src/quad_app/*.c ../src/computation_graph/*.c -lm
diff --git a/quad/test_logging/log.txt b/quad/test_logging/log.txt
deleted file mode 100644
index c66e5152c66693e82bc287674ba3359ab6710dd4..0000000000000000000000000000000000000000
--- a/quad/test_logging/log.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# MicroCART On-board Quad Log
-# Sample size: 3
-time	accel_x	accel_y	accel_z	gyro_x	gyro_y	gyro_z	Altitude PID_Correction	X pos PID_Correction	Y pos PID_Correction	Pitch PID_Correction	Roll PID_Correction	Yaw PID_Correction	Pitch Rate PID_Correction	Roll Rate PID_Correction	Yaw Rate PID_Correction	Pitch_Constant	Roll_Constant	Yaw_Constant	VRPN X_Constant	VRPN Y_Constant	VRPN Alt_Constant	VRPN Pitch_Constant	VRPN Roll_Constant	X Setpoint_Constant	Y Setpoint_Constant	Alt Setpoint_Constant	Yaw Setpoint_Constant	Signal Mixer_PWM 0	Signal Mixer_PWM 1	Signal Mixer_PWM 2	Signal Mixer_PWM 3
-s	G	G	G	rad/s	rad/s	rad/s	10ns_dutycycle	rad	rad	rad/s	rad/s	rad/s	10ns_dutycycle	10ns_dutycycle	10ns_dutycycle	rad	rad	rad	m	m	m	rad	rad	m	m	m	rad	10ns_dutycycle	10ns_dutycycle	10ns_dutycycle	10ns_dutycycle
-0.000000	0.000000	0.000000	0.000000	0.000000	4722366482869645213696.000000	-nan	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000
-0.000000	0.000000	0.000000	0.000000	0.000000	4722366482869645213696.000000	-nan	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000
-0.000000	0.000000	0.000000	0.000000	0.000000	4722366482869645213696.000000	-nan	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000	0.000000
diff --git a/quad/test_logging/test.c b/quad/test_logging/test.c
deleted file mode 100644
index 7fd26a97d187f96630e209fa04f5364fdbdcef58..0000000000000000000000000000000000000000
--- a/quad/test_logging/test.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stddef.h>
-#include "type_def.h"
-#include "log_data.h"
-#include "control_algorithm.h"
-
-int zybo_uart_write(struct UARTDriver *self, unsigned char c) {
-    printf("%c", c);
-    return 0;
-}
-
-
-int main() {
-    modular_structs_t structs;
-    structs.hardware_struct.uart.write = zybo_uart_write;
-    control_algorithm_init(&(structs.parameter_struct));
-	initialize_logging(&structs.log_struct, &structs.parameter_struct);
-    log_data(&(structs.log_struct), &(structs.parameter_struct));
-    log_data(&(structs.log_struct), &(structs.parameter_struct));
-    log_data(&(structs.log_struct), &(structs.parameter_struct));
-    printLogging(&structs.hardware_struct, &(structs.log_struct), &(structs.parameter_struct));
-    return 0;
-}
diff --git a/quad/test_logging/test_log b/quad/test_logging/test_log
deleted file mode 100644
index e9c0b45a27eb1eb96d051a7ec6738d3c8ff5adba..0000000000000000000000000000000000000000
Binary files a/quad/test_logging/test_log and /dev/null differ