diff --git a/quad/Makefile b/quad/Makefile
index 2cabb0468cc8658db03b3bdec963d1f9d0f47f61..f67155208f9f817476423cf8744f8764f37c37b4 100644
--- a/quad/Makefile
+++ b/quad/Makefile
@@ -18,16 +18,16 @@ libs:
 	$(MAKE) -C src/commands
 	$(MAKE) -C src/quad_app
 
-bins: libs
-	$(MAKE) -C src/virt_quad clean default
-	$(MAKE) -C src/gen_diagram clean default
+bins:
+	$(MAKE) -C src/virt_quad
+	$(MAKE) -C src/gen_diagram
 
 zybo:
 	bash scripts/build_zybo.sh
 
 # For creating an image of the control network.
-diagram: bins
-	bash src/gen_diagram/create_png.sh
+diagram:
+	$(MAKE) -C src/gen_diagram diagram
 
 boot: $(BOOT)
 
diff --git a/quad/src/gen_diagram/Makefile b/quad/src/gen_diagram/Makefile
index c9b2f683d2857f7435fdd615f8ba05334d49c9af..bf0f58c8c1c5260c10aef4d5f1634309183bcbb3 100644
--- a/quad/src/gen_diagram/Makefile
+++ b/quad/src/gen_diagram/Makefile
@@ -1,9 +1,11 @@
-# Running this make file directly will not re-link with quad_app, even if it has changed
-# You should run `make diagram` from the top-level quad folder
-TOP=../..
-
-NAME = gen_diagram
-REQLIBS = -lquad_app -lgraph_blocks -lcomputation_graph -lm
-
-
-include $(TOP)/executable.mk
\ No newline at end of file
+TOP=../..
+
+NAME = gen_diagram
+REQLIBS = -lquad_app -lgraph_blocks -lcomputation_graph -lm
+
+include $(TOP)/executable.mk
+
+diagram:
+	$(MAKE) -C ../quad_app
+	$(MAKE) clean default
+	./create_png.sh
\ No newline at end of file
diff --git a/quad/src/gen_diagram/network.dot b/quad/src/gen_diagram/network.dot
index 862aace068984b2f3bddf264eb8873d092ef1a27..413321afee555a945a9434bf8363eb40037c7051 100644
--- a/quad/src/gen_diagram/network.dot
+++ b/quad/src/gen_diagram/network.dot
@@ -7,7 +7,7 @@ label="<f0>Roll PID  |<f1> --\>Cur point |<f2> --\>Setpoint |<f3> --\>dt |<f4> [
 "Ts_IMU" -> "Roll PID":f3 [label="Constant"]
 "Pitch PID"[shape=record
 label="<f0>Pitch PID  |<f1> --\>Cur point |<f2> --\>Setpoint |<f3> --\>dt |<f4> [Kp=15.000] |<f5> [Ki=0.000] |<f6> [Kd=0.200] |<f7> [alpha=0.000]"]
-"Pitch trim add" -> "Pitch PID":f1 [label="Sum"]
+"Pitch" -> "Pitch PID":f1 [label="Constant"]
 "RC Pitch" -> "Pitch PID":f2 [label="Constant"]
 "Ts_IMU" -> "Pitch PID":f3 [label="Constant"]
 "Yaw PID"[shape=record
@@ -26,7 +26,7 @@ label="<f0>Pitch Rate PID  |<f1> --\>Cur point |<f2> --\>Setpoint |<f3> --\>dt |
 "Pitch PID" -> "Pitch Rate PID":f2 [label="Correction"]
 "Ts_IMU" -> "Pitch Rate PID":f3 [label="Constant"]
 "Yaw Rate PID"[shape=record
-label="<f0>Yaw Rate PID  |<f1> --\>Cur point |<f2> --\>Setpoint |<f3> --\>dt |<f4> [Kp=435480.000] |<f5> [Ki=0.000] |<f6> [Kd=0.000] |<f7> [alpha=0.000]"]
+label="<f0>Yaw Rate PID  |<f1> --\>Cur point |<f2> --\>Setpoint |<f3> --\>dt |<f4> [Kp=29700.000] |<f5> [Ki=0.000] |<f6> [Kd=0.000] |<f7> [alpha=0.000]"]
 "dPsi" -> "Yaw Rate PID":f1 [label="Constant"]
 "RC Yaw" -> "Yaw Rate PID":f2 [label="Constant"]
 "Ts_IMU" -> "Yaw Rate PID":f3 [label="Constant"]
@@ -65,12 +65,6 @@ label="<f0>Pitch  |<f1> [Constant=0.000]"]
 label="<f0>Roll  |<f1> [Constant=0.000]"]
 "Yaw"[shape=record
 label="<f0>Yaw  |<f1> [Constant=0.000]"]
-"Pitch trim"[shape=record
-label="<f0>Pitch trim  |<f1> [Constant=0.000]"]
-"Pitch trim add"[shape=record
-label="<f0>Pitch trim add  |<f1> --\>Summand 1 |<f2> --\>Summand 2"]
-"Pitch trim" -> "Pitch trim add":f1 [label="Constant"]
-"Pitch" -> "Pitch trim add":f2 [label="Constant"]
 "dTheta"[shape=record
 label="<f0>dTheta  |<f1> [Constant=0.000]"]
 "dPhi"[shape=record
@@ -78,13 +72,13 @@ label="<f0>dPhi  |<f1> [Constant=0.000]"]
 "dPsi"[shape=record
 label="<f0>dPsi  |<f1> [Constant=0.000]"]
 "P PWM Clamp"[shape=record
-label="<f0>P PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-30000.000] |<f3> [Max=30000.000]"]
+label="<f0>P PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-20000.000] |<f3> [Max=20000.000]"]
 "Pitch Rate PID" -> "P PWM Clamp":f1 [label="Correction"]
 "R PWM Clamp"[shape=record
-label="<f0>R PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-30000.000] |<f3> [Max=30000.000]"]
+label="<f0>R PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-20000.000] |<f3> [Max=20000.000]"]
 "Roll Rate PID" -> "R PWM Clamp":f1 [label="Correction"]
 "Y PWM Clamp"[shape=record
-label="<f0>Y PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-30000.000] |<f3> [Max=30000.000]"]
+label="<f0>Y PWM Clamp  |<f1> --\>Bounds in |<f2> [Min=-20000.000] |<f3> [Max=20000.000]"]
 "Yaw Rate PID" -> "Y PWM Clamp":f1 [label="Correction"]
 "VRPN X"[shape=record
 label="<f0>VRPN X  |<f1> [Constant=0.000]"]
diff --git a/quad/src/gen_diagram/network.png b/quad/src/gen_diagram/network.png
index 65999177c759abd9b73da5ee19f7b4fea3b766e4..b53690878257533e042b2dc8d51a02e798337337 100644
Binary files a/quad/src/gen_diagram/network.png and b/quad/src/gen_diagram/network.png differ