diff --git a/Readme.md b/README.md
similarity index 95%
rename from Readme.md
rename to README.md
index c0f96eb671fa47dd7f9a8757a349847b79f247e7..026e4be32fa23037340f9d47d5540a676381fbd5 100644
--- a/Readme.md
+++ b/README.md
@@ -26,13 +26,14 @@ MicroCART has 3 areas of development:
 ## Sections
 [Quadcopter](quad/README.md)  
 [Ground Station](groundStation/README.md)  
-[Controls](controls/README.md)
+[Controls](controls/README.md)  
 
 ## Documentation
 [How to demo the quadcopter](documentation/how_to_demo.md)  
 [How to charge the LiPo batteries](documentation/how_to_charge_lipo.md)  
 [Continuous Integration (automatic build process) FAQ](documentation/ci_faq.md)  
 [How to document things on Gitlab](documentation/how_to_document_things_on_gitlab.md)  
+[How to update the website](website/README.md)  
 
 # Stable Releases
 To browse stable releases from previous teams, view the [Tags](/../tags).
\ No newline at end of file
diff --git a/controls/README.md b/controls/README.md
index 456ed8fa19fc7eadf759c1bcef4e33d3bffdbb7b..29c4bc1e2d9d0bced898e76bbd4448fad85b9172 100644
--- a/controls/README.md
+++ b/controls/README.md
@@ -1,3 +1,6 @@
 # Controls
 
-_TODO_
\ No newline at end of file
+This folder contains the files used in developing the model of the quadcopter.
+
+## Documentation
+[Measuring Motor Resistance](documentation/MeasuringMotorResistance.pdf)  
\ No newline at end of file
diff --git a/controls/documentation/MeasuringMotorResistance.pdf b/controls/documentation/MeasuringMotorResistance.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..317655a7dfb96fdc6b3b8c16b7056f38ecceea0a
Binary files /dev/null and b/controls/documentation/MeasuringMotorResistance.pdf differ
diff --git a/documentation/how_to_demo.md b/documentation/how_to_demo.md
index 104c64bc20852f6dcbcb9bea5a1c380d6bae8d63..c021dcf10c54eea6b382ff107061ae7fcb67e501 100644
--- a/documentation/how_to_demo.md
+++ b/documentation/how_to_demo.md
@@ -21,7 +21,7 @@ Follow this How-To to get the quadcopter up and running in Coover 3050.
 7. Now you should be able to move the quadcopter trackable around in the tracking area, and see it update in real-time on the screen.
 
 ## Setup Ground Station
-On the ground station computer (Co3050-09), log in with the following credentials. 
+On the ground station computer (Co3050-microcart), log in with the following credentials. 
 
 username: `ucart`<br>
 password: `microcart`
@@ -39,11 +39,6 @@ make vrpn
 make
 ```
 
-And set the wifi environment variable if you want to connect to the quad over wifi.
-```bash
-$ UCART_USE_WIFI=true
-```
-
 ## Setup Transmitter
 The RC transmitter is used to manually control the quad.
 1. Ensure the transmitter has the following state before turning it on:
@@ -76,18 +71,12 @@ Execute the following on the ground station from the root of the ground station
 
 In one terminal, run the backend:
 ```bash
-UCART_SOCKET=./ucart.socket ./BackEnd
-```
-
-In another terminal, run the monitor:
-```bash
-UCART_SOCKET=./ucart.socket ./Cli monitor -f
+./BackEnd
 ```
 
 Finally, in another terminal, export the socket path, and then execute any CLI commands that you like:
 ```bash
-export UCART_SOCKET=./ucart.socket
-./Cli setpid --pitch -p 1.000
+./Cli setparam 'X pos PID' 'Setpoint' 1.000
 # ... other CLI commands
 ```
 
diff --git a/groundStation/README.md b/groundStation/README.md
index e14675ab8ad6eb0b870f87355b94a0778eae994c..f9902a1c4b154c3862e52dd71a220caabf871b40 100644
--- a/groundStation/README.md
+++ b/groundStation/README.md
@@ -4,34 +4,39 @@
 
 First, if submodules were not recursevly added through git. Run this command if you have made any attempt to make vrpn manually. 
 run
-	'git submodule update --init --recursive'
+```bash
+    git submodule update --init --recursive
+```
 
 Now that you have all of the files necissary.
 
 cd into the groundstation folder.
+```bash
 	cd groundStation
 	make vrpn
 	make
+```
 
-run the program with sudo privledges
+run the program with privledges
+```bash
 	./BackEnd
+```
 
-If you wish to change the way the backend communicates to the quad and vice versa, look at src/config.h. 
-	This provides a list of environment variables which you can set and use for your computer or time of use.
+## Changing Defaults
+If you wish to change the way the backend communicates to the quad and vice versa, look at `src/config.h`. 
+This provides a list of environment variables which you can set and use for your computer or time of use.
 	
-
-## Modifying
-See MODIFYING for the software architecture/organization and how to add new functionality.
-
 ## Using
-First, the backend daemon must be running. Run the backend with ./BackEnd. Note
-the environment variables in config.h, especially the backend socket path. The backend
-requires root for bluetooth, but can run as a normal user with TCP, as long as the
+First, the backend daemon must be running. Run the backend with 
+```bash
+    ./BackEnd
+```
+**Note:** The backend requires root for bluetooth, but can run as a normal user with TCP, as long as the
 socket path is writable by the user.
 
 Once the backend is running, various CLI tools can be used to view the state of the
 quad and send commands. Each of these tools is given as the first argument
-to the CLI program, for example, to get a node output the quad, use `cli getoutput`. Note that
+to the CLI program, for example, to get a node output from the quad, use `cli getoutput`. Note that
 the backend socket environment variable must be set to the same value as it
 was for the backend. The CLI program also supports busybox-style symbolic links.
 For example, if there is a symlink named `getoutput` that points to the `cli` binary,
@@ -39,48 +44,41 @@ running the `getoutput` program will effectively run `cli getoutput`.
 
 The names of the binaries is subject to change.
 
-For a list of cli commands and more in depth usage explainations, use the --help flag.
-'./Cli --help'
+For a list of cli commands and more in depth usage explainations, use the `--help` flag.
+```bash
+    ./Cli --help
+```
 
-For help with the specific cli command you are running, use the --help flag once again.
-'./Cli getoutput --help'
+For help with the specific cli command you are running, use the `--help` flag once again.
+```bash
+    ./Cli getoutput --help
+```
 
 ### Example
 In one terminal or screen, run the backend:
 
-`./BackEnd`
+```bash
+    ./BackEnd
+```
 
 This will activate the quad and the backend, and the backend will be available for
-connections from the frontend tools. One useful tool is the getnodes. In another
+connections from the frontend tools. One useful tool is the `getnodes`. In another
 terminal window, run
 
-`./Cli getnodes` 
+```bash
+    ./Cli getnodes
+```
 
 or alternatively with symlinks
 
-`./getnodes`
-
-This will fetch the block_id, type_id and name of every node in the current graph
-
-You can run any number of any combination of frontend tools at the same time.
-
-### Batch Update of PID constants
-The CLI only supports setting one PID constant at a time using the following command.
-
-From the `groundStation` folder:
-```
-./Cli setpid --pitch -p 1.000
+```bash
+    ./getnodes
 ```
 
-This can get tedious for 27 PID constants.
+This will fetch the `block_id`, `type_id` and name of every node in the current graph
 
-To help, we made a batch script that allows you to easily set all 27 PID constants at once and save your progress as you go.
-
-First, edit the `parameters.txt` file in the `groundStation/scripts` folder to specify the values you want to set. The script will parse this file and pass them to the `Cli` program.
-
-Then simply run the script from the `groundStation` folder:
-```
-scripts/setpid_batch.sh
-```
+You can run any number of any combination of frontend tools at the same time. 
+If you find it helpful, with this setup you can create a bash script that simply 
+runs the same commands. This has been found to be of use when we are tuning.
 
-Remember to commit your changes in the `parameters.txt` file if you believe you have found a better default state for the quad.
\ No newline at end of file
+There are a couple of already written bash scripts in the `scripts/` folder.
\ No newline at end of file
diff --git a/groundStation/gui/MicroCART/MicroCART.pro.user b/groundStation/gui/MicroCART/MicroCART.pro.user
index f36c56fc6c5e8e57f31920dd005d4aca3d16ec64..b87c55319792272b73342ccf2bffbc7f0a466fba 100644
--- a/groundStation/gui/MicroCART/MicroCART.pro.user
+++ b/groundStation/gui/MicroCART/MicroCART.pro.user
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.1.0, 2017-04-19T23:57:31. -->
+<!-- Written by QtCreator 4.0.1, 2017-04-21T10:58:17. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
-  <value type="QByteArray">{f7736f41-610d-4989-a7d9-6e994afe94ba}</value>
+  <value type="QByteArray">{ec588c71-c0cc-43f4-8233-a07fa24de8ad}</value>
  </data>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -61,7 +61,7 @@
   <valuemap type="QVariantMap">
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{94de1029-defb-4d1d-a0ac-6d51aba06ea3}</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{c6f8ca21-0eb9-4188-b2e8-fae8725afa1b}</value>
    <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
    <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
    <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
@@ -184,13 +184,13 @@
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">MicroCART</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/local/ucart/Documents/MicroCART_17-18/groundStation/gui/MicroCART/MicroCART.pro</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/jake/Microcart_17-18/groundStation/gui/MicroCART/MicroCART.pro</value>
     <value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
     <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
     <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">MicroCART.pro</value>
     <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
     <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
-    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/local/ucart/Documents/MicroCART_17-18/groundStation/gui/MicroCART</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/jake/Microcart_17-18/groundStation/gui/MicroCART</value>
     <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
     <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
     <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
diff --git a/groundStation/gui/MicroCART/mainwindow.cpp b/groundStation/gui/MicroCART/mainwindow.cpp
index daed528e84e331e8d384b84b642492a66a6a8bae..b3ee612dd1d3eedeaa233ccd380f1159662599f4 100644
--- a/groundStation/gui/MicroCART/mainwindow.cpp
+++ b/groundStation/gui/MicroCART/mainwindow.cpp
@@ -97,10 +97,6 @@ MainWindow::MainWindow(QWidget *parent) :
 
     /* Connect various things that can result in sending setpoints */
     connect(ui->pbSendSetpoint, SIGNAL (clicked()), this, SLOT (sendSetpoints()));
-    connect(ui->xSetpoint, SIGNAL (returnPressed()), this, SLOT (sendSetpoints()));
-    connect(ui->ySetpoint, SIGNAL (returnPressed()), this, SLOT (sendSetpoints()));
-    connect(ui->zSetpoint, SIGNAL (returnPressed()), this, SLOT (sendSetpoints()));
-
     connect(ui->setpointList, SIGNAL (doubleClicked(QModelIndex)), this, SLOT (sendSelectedSetpoint()));
 }
 
@@ -400,3 +396,24 @@ void MainWindow::on_socketPath_returnPressed()
 {
     QProcessEnvironment::systemEnvironment().insert("UCART_SOCKET", ui->socketPath->text());
 }
+
+void MainWindow::on_xSetpoint_returnPressed()
+{
+    sp_x = ui->xSetpoint->text().toFloat();
+    emit (setParamValue(ui->xSetpointSelect->currentText(),
+                        blockDefs[BLOCK_CONSTANT]->param_names[0], sp_x));
+}
+
+void MainWindow::on_ySetpoint_returnPressed()
+{
+    sp_y = ui->ySetpoint->text().toFloat();
+    emit (setParamValue(ui->ySetpointSelect->currentText(),
+                        blockDefs[BLOCK_CONSTANT]->param_names[0], sp_y));
+}
+
+void MainWindow::on_zSetpoint_returnPressed()
+{
+    sp_z = ui->zSetpoint->text().toFloat();
+    emit (setParamValue(ui->zSetpointSelect->currentText(),
+                        blockDefs[BLOCK_CONSTANT]->param_names[0], sp_z));
+}
diff --git a/groundStation/src/cli/README.md b/groundStation/src/cli/README.md
deleted file mode 100644
index ec546d4539dad7a4ce07116010e85a707ab4ef61..0000000000000000000000000000000000000000
--- a/groundStation/src/cli/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# CLI
-
-## Usage
-
-The Cli has been designed to function similarly to command line programs. Run the program using ./Cli
-
-To run a specific command in the 
diff --git a/quad/xsdk_workspace/real_quad/test/.gitignore b/quad/xsdk_workspace/real_quad/test/.gitignore
deleted file mode 100644
index f159545885dfb8a7708b4f411522df65889865cf..0000000000000000000000000000000000000000
--- a/quad/xsdk_workspace/real_quad/test/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-test_uart_buff
\ No newline at end of file
diff --git a/quad/xsdk_workspace/real_quad/test/Makefile b/quad/xsdk_workspace/real_quad/test/Makefile
deleted file mode 100644
index 36613e465ba609b8db63bacd290c279eee14825a..0000000000000000000000000000000000000000
--- a/quad/xsdk_workspace/real_quad/test/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# QUAD_ROOT is obtained from environment
-SRC = $(QUAD_ROOT)/sw/modular_quad_pid/src
-LIB = $(QUAD_ROOT)/lib/test
-
-test_uart_buff: test_uart_buff.c
-	gcc -o test_uart_buff -I. -I$(SRC) -I$(LIB) $(LIB)/test.o test_uart_buff.c $(SRC)/uart_buff.c
-
-.PHONY: clean
-clean:
-	rm test_uart_buff
diff --git a/quad/xsdk_workspace/real_quad/test/test_uart_buff.c b/quad/xsdk_workspace/real_quad/test/test_uart_buff.c
deleted file mode 100644
index db85a701aad5553496357954d8e0df4a6745388b..0000000000000000000000000000000000000000
--- a/quad/xsdk_workspace/real_quad/test/test_uart_buff.c
+++ /dev/null
@@ -1,348 +0,0 @@
-#include <stdio.h>
-#include "uart_buff.h"
-#include <math.h>
-#include <string.h>
-#include "test.h"
-
-int float_equals(float x1, float x2) {
-  return fabs(x1 - x2) < 10e-5;
-}
-
-void print_test_result(int success, float exp, float act) {
-  if (success) printf("passed\n");
-  else printf("FAILED: expected %f but got %f\n", exp, act);
-}
-
-int failed(char *msg) {
-  printf("%s\n", msg);
-  return 1;
-}
-
-void add_packet(u16 type, unsigned short id, unsigned short length, unsigned char *data) {
-  uart_buff_add_u8(0xBE);
-  uart_buff_add_u8(type);
-  uart_buff_add_u8(type >> 8);
-  uart_buff_add_u8(id);
-  uart_buff_add_u8(id >> 8);
-  uart_buff_add_u8(length);
-  uart_buff_add_u8(length >> 8);
-  int i;
-  for (i = 0; i < length; i += 1) {
-    uart_buff_add_u8(data[i]);
-  }
-  // fake checksum
-  uart_buff_add_u8(1);
-}
-
-void add_VRPN_packet() {
-  float arr[6] = {1.0, 1.2, 1.4, -1.5, -0.5, -1.1};
-  unsigned char *data = (unsigned char *) &arr;
-  add_packet(4, 0, 24, data);
-}
-
-void add_basic_packet() {
-  unsigned char data[6] = {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
-  add_packet(4, 0, 6, data);
-}
-
-void add_garbage_data() {
-  int i;
-  for (i = 0; i < 32; i += 1) {
-    uart_buff_add_u8(i);
-  }
-}
-
-
-int setup_VRPN_packet() {
-  add_VRPN_packet();
-  if (!uart_buff_packet_ready()) {
-    return 0;
-  }
-}
-
-int setup_basic_packet() {
-  add_basic_packet();
-  if (!uart_buff_packet_ready()) {
-    return 0;
-  }
-}
-
-int test_empty_when_empty() {
-  uart_buff_reset();
-  int exp = 1;
-  int act = uart_buff_empty();
-  int success = exp == act;
-  return !success;
-}
-
-int test_empty_after_receiving_some_data() {
-  uart_buff_reset();
-  add_garbage_data();
-  int exp = 0;
-  int act = uart_buff_empty();
-  int success = exp == act;
-  return !success;
-}
-
-int test_full_is_false_at_start() {
-  uart_buff_reset();
-  int exp = 0;
-  int act = uart_buff_full();
-  int success = exp == act;
-  return !success;
-}
-
-int test_full_after_receiving_some_data() {
-  uart_buff_reset();
-  add_garbage_data();
-  int exp = 0;
-  int act = uart_buff_full();
-  int success = exp == act;
-  return !success;
-}
-
-int test_buffer_size_empty() {
-  uart_buff_reset();
-  int exp = 0;
-  int act = uart_buff_size();
-  int success = exp == act;
-  return !success;
-}
-
-int test_buffer_size_after_garbage_data() {
-  uart_buff_reset();
-  add_garbage_data();
-  int exp = 32;
-  int act = uart_buff_size();
-  int success = exp == act;
-  return !success;
-}
-
-int test_buffer_size_after_garbage_data_scanned() {
-  uart_buff_reset();
-  add_garbage_data();
-  uart_buff_packet_ready();
-  int exp = 0;
-  int act = uart_buff_size();
-  int success = exp == act;
-  return !success;
-}
-
-int test_buffer_size_after_VRPN_packet() {
-  uart_buff_reset();
-  if(!setup_VRPN_packet()) return failed("FAILED: setup failed");
-  int exp = 32;
-  int act = uart_buff_size();
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u8() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xAA;
-  int act = uart_buff_data_get_u8(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u8_with_offset() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xBB;
-  int act = uart_buff_data_get_u8(1);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u16() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xBBAA;
-  int act = uart_buff_data_get_u16(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u16_with_offset() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xDDCC;
-  int act = uart_buff_data_get_u16(2);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u16_wrapped() {
-  uart_buff_reset();
-  int i;
-  for (i = 0; i < 1000; i += 1) uart_buff_add_u8(0);
-  uart_buff_packet_ready();
-  for (i = 0; i < 1040; i += 1) uart_buff_add_u8(0);
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xBBAA;
-  int act = uart_buff_data_get_u16(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u32() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  unsigned int exp = 0xDDCCBBAA;
-  unsigned int act = uart_buff_data_get_u32(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u32_with_offset() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  unsigned int exp = 0xFFEEDDCC;
-  unsigned int act = uart_buff_data_get_u32(2);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u32_wrapped_1_4() {
-  uart_buff_reset();
-  int i;
-  for (i = 0; i < 1000; i += 1) uart_buff_add_u8(0);
-  uart_buff_packet_ready();
-  for (i = 0; i < 1040; i += 1) uart_buff_add_u8(0);
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xDDCCBBAA;
-  int act = uart_buff_data_get_u32(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u32_wrapped_2_4() {
-  uart_buff_reset();
-  int i;
-  for (i = 0; i < 1000; i += 1) uart_buff_add_u8(0);
-  uart_buff_packet_ready();
-  for (i = 0; i < 1039; i += 1) uart_buff_add_u8(0);
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xDDCCBBAA;
-  int act = uart_buff_data_get_u32(0);
-  int success = exp == act;
-  return !success;
-}
-
-int test_packet_get_u32_wrapped_3_4() {
-  uart_buff_reset();
-  int i;
-  for (i = 0; i < 1000; i += 1) uart_buff_add_u8(0);
-  uart_buff_packet_ready();
-  for (i = 0; i < 1038; i += 1) uart_buff_add_u8(0);
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 0xDDCCBBAA;
-  int act = uart_buff_data_get_u32(0);
-  int success = exp == act;
-  return !success;
-}
-
-
-int test_packet_get_float() {
-  uart_buff_reset();
-  if(!setup_VRPN_packet()) return failed("FAILED: setup failed");
-  float exp = 1.0;
-  float act = uart_buff_data_get_float(0);
-  int success = float_equals(exp, act);
-  return !success;
-}
-
-int test_packet_get_float_with_offset() {
-  uart_buff_reset();
-  if(!setup_VRPN_packet()) return failed("FAILED: setup failed");
-  float exp = 1.2;
-  float act = uart_buff_data_get_float(4);
-  int success = float_equals(exp, act);
-  return !success;
-}
-
-int test_packet_ready_at_start() {
-  uart_buff_reset();
-  int exp = 0;
-  int act = uart_buff_packet_ready();
-  int success = act == exp;
-  return !success;
-}
-
-int test_packet_ready_after_receiving_packet() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  int exp = 1;
-  int act = uart_buff_packet_ready();
-  int success = act == exp;
-  return !success;
-}
-
-int test_packet_ready_after_consuming_packet() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  uart_buff_consume_packet();
-  int exp = 0;
-  int act = uart_buff_packet_ready();
-  int success = act == exp;
-  return !success;
-}
-
-int test_size_when_data_lenth_too_large() {
-  uart_buff_reset();
-  unsigned char data[UART_MAX_PACKET_SIZE + 1];
-  add_packet(4, 0, UART_MAX_PACKET_SIZE + 1, data);
-  uart_buff_packet_ready();
-  int exp = 0;
-  int act = uart_buff_size();
-  int success = act == exp;
-  return !success;
-}
-
-int test_get_raw() {
-  uart_buff_reset();
-  if(!setup_basic_packet()) return failed("FAILED: setup failed");
-  unsigned char exp[15] =
-    {0xBE, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x01};
-  size_t length;
-  unsigned char *act = (unsigned char *) uart_buff_get_raw(&length);
-  int success = 1;
-  int i;
-  for (i = 0; i < length; i += 1) {
-    success = success && (exp[i] == act[i]);
-    if (!success) {
-      break;
-    }
-  }
-  return !success;
-}
-
-int main() {
-  test(test_empty_when_empty, "test empty when empty");
-  test(test_empty_after_receiving_some_data, "test empty after recieving soem data");
-  test(test_full_is_false_at_start, "test full is false at start");
-  test(test_full_after_receiving_some_data, "test full after receiving some data");
-  test(test_packet_get_u8, "test packet get u8");
-  test(test_packet_get_u8_with_offset, "test packet get u8 with offset");
-  test(test_packet_get_u16, "test packet get u16");
-  test(test_packet_get_u16_with_offset, "test packet get u16 wrapped");
-  test(test_packet_get_u16_wrapped, "test packet get u16 wrapped");
-  test(test_packet_get_u32, "test packet get u32");
-  test(test_packet_get_u32_with_offset, "test packet get u32 with offset");
-  test(test_packet_get_u32_wrapped_1_4, "test packet get u32 wrapped 1/4");
-  test(test_packet_get_u32_wrapped_2_4, "test packet get u32 warpped 2/4");
-  test(test_packet_get_u32_wrapped_3_4, "test packet get u32 wrapped 3/4");
-  test(test_packet_get_float, "test packet get u32 wrapped 3/4");
-  test(test_packet_get_float_with_offset, "test packet get float with offset");
-  test(test_buffer_size_after_VRPN_packet, "test buffer size after VRPN packet");
-  test(test_buffer_size_empty, "test buffer size empty");
-  test(test_buffer_size_after_garbage_data, "test buffer size after garbage data");
-  test(test_buffer_size_after_garbage_data_scanned, "test buffer size after garbage data scanned");
-  test(test_packet_ready_at_start, "test packet ready at start");
-  test(test_packet_ready_after_receiving_packet, "test packet ready after receiving packet");
-  test(test_packet_ready_after_consuming_packet, "test packet ready after consuming packet");
-  test(test_size_when_data_lenth_too_large, "test size when data length too large");
-
-  return test_summary();
-}
diff --git a/quad/xsdk_workspace/real_quad/test/xil_types.h b/quad/xsdk_workspace/real_quad/test/xil_types.h
deleted file mode 100644
index d67aef849b6b14143b6f19692c5dc33370b804e2..0000000000000000000000000000000000000000
--- a/quad/xsdk_workspace/real_quad/test/xil_types.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef XIL_TYPES_H
-#define XIL_TYPES_H
-
-#include <stddef.h>
-
-typedef unsigned char u8;
-typedef unsigned short u16;
-typedef unsigned int u32;
-
-#endif
diff --git a/website/.gitignore b/website/.gitignore
index e5d0254d0bd444bbc69f6ba4626b945b2bd724ab..8b63161329bb240e4cd1fb6495ba34d2ca1da42a 100644
--- a/website/.gitignore
+++ b/website/.gitignore
@@ -1,5 +1,6 @@
 output/
 PASSWORD
+TEAM
 lib/python2.7/site-packages/
 pelicanconf.pyc
 *.pyc
diff --git a/website/README.md b/website/README.md
index ee88e06ca4f9764e2c1ed8be5a628b0cbb200ad6..0f116023b6615da096687dd5ae905619fe5bfb54 100644
--- a/website/README.md
+++ b/website/README.md
@@ -1,5 +1,4 @@
-Contributing
-----
+# Making Changes to the Website
 
 ## Setup Environment
 
@@ -32,8 +31,14 @@ make build
 
 ## Deploying the website
 
-To deploy the website to our domain `may1716.sd.ece.iastate.edu`:
+Before deploying, ensure you have 2 files in the website root directory: the
+`PASSWORD` file and the `TEAM` file. The `PASSWORD` file should contain the sftp
+password that was emailed to you for your website. The `TEAM` file should contain
+the team name, something like `mayXXXX` or `decXXXX`.
 
+The `PASSWORD` and `TEAM` files should contain NO SPACES and NO NEWLINES.
+
+When ready to deploy:
 ```
 make deploy
 ```
diff --git a/website/content/computation_graph.md b/website/content/computation_graph.md
index 0f955b19ceea85b6bb1455477a75aee37b5b00a4..a1c366601e9ff274cbd972dba73772c2b0ade07e 100644
--- a/website/content/computation_graph.md
+++ b/website/content/computation_graph.md
@@ -4,7 +4,7 @@ Authors: Brendan
 Category: Highlights
 thumbnail: "/images/computation_graph.png"
 
-The controls team wants to start tuning the controller on the quadcopter, they also want to have the modify the controller in order to better characterize each part. Currently, there is no way to do that except re-write the code on the quad, which bleeds into their development cycle. David took the challenge to solve this issue, and developed the idea of a computation graph.
+The controls team wants to start tuning the controller on the quadcopter; they also want  to have the ability to modify the controller in order to better characterize each part. Currently, there is no way to do that except to re-write the code on the quad, which bleeds into their development cycle. David took the challenge to solve this issue, and developed the idea of a computation graph.
 
 <a href="/images/computation_graph.png">
 <figure>
diff --git a/website/content/files/492FinalReport.pdf b/website/content/files/492FinalReport.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6a0264d9736ce63f87ca3f212bbaace41979f4da
Binary files /dev/null and b/website/content/files/492FinalReport.pdf differ
diff --git a/website/content/pages/documents.md b/website/content/pages/documents.md
index 26e6e6b37d8a52dacb5dab80fb95313a320b1057..d1e2971cfeb2d82a9ca7808e39e37d3c98025377 100644
--- a/website/content/pages/documents.md
+++ b/website/content/pages/documents.md
@@ -13,6 +13,10 @@ sortorder: 005
 [Design Document 1](/files/DesignDocument1.docx.pdf)  
 [Design Document 2](/files/DesignDocument2.pdf)  
 
+## Final Report
+
+[Final Report](/files/492FinalReport.pdf)  
+
 ## Weekly Reports
 <iframe src="https://drive.google.com/embeddedfolderview?id=0BywzM7Q_7PUSeF8tdWpmMVN0eG8#list" width="100%" height="500" frameborder="0"></iframe>
 
diff --git a/website/scripts/deploy.sh b/website/scripts/deploy.sh
index f3902dd5305a912393e375c5999ce649addbe5ee..caffc9f4a86c8f78380feadc28102cfa675566e5 100644
--- a/website/scripts/deploy.sh
+++ b/website/scripts/deploy.sh
@@ -1,24 +1,27 @@
 #!/bin/bash
 
-HOST=may1716.sd.ece.iastate.edu
-USERNAME=may1716
 
-if [ ! -e PASSWORD ]; then
+if [ ! -e PASSWORD ] || [ ! -e TEAM ]; then
     echo "
 
 *****
-ERROR: File PASSWORD is missing.
-Create a file called PASSWORD in the website root directory, and put the sftp
-password in that file. No spaces. No newlines.
+ERROR: File PASSWORD or file TEAM is missing.
+Create 2 files in the website root directory, one named PASSWORD and another
+named TEAM, and put the sftp password and senior design team name in these
+files, respectively. No spaces. No newlines.
 (The SFTP password was given to us in an email. Just search 'sftp password' in
-your CyMail and it will probably be first result.)
+your CyMail and it will probably be first result. The senior design team
+name is something like mayXXXX or decXXXX)
 *****
 
 "
     exit 1
 fi
 
+TEAM=$(cat TEAM)
 PASSWORD=$(cat PASSWORD)
+HOST=$TEAM.sd.ece.iastate.edu
+USERNAME=$TEAM
 
 chmod -R 755 output || exit 1
 #cd output || exit 1