diff --git a/documentation/groundStation/packets.md b/documentation/groundStation/packets.md
new file mode 100644
index 0000000000000000000000000000000000000000..fdb0e8eac4db58fecbf009cd171d17052cfdb276
--- /dev/null
+++ b/documentation/groundStation/packets.md
@@ -0,0 +1,13 @@
+The MicroCART project uses custom packets to communicate with the quad. This may seem complex at first
+but the structure of all packets is the same it is just the way the data is formatted that changes 
+between packets. The basic structure is shown below. 
+
+| Index             | 0               | 1            | 2          | 3           | 4    | 5        | 6             |
+|:-----------------:|:---------------:|:------------:|:----------:|:-----------:|:----:|:--------:|:-------------:|
+| Message Parameter | Begin Character | Message Type | Message ID | Data Length | Data | Checksum | End Character |
+| Bytes             | 1               | 2            | 2          | 2           | var  | 1        | 1             |
+
+Both the begin and end characters are defined in (communication.h)[]. Message types are defined within an enum in
+(commands.h)[]. Message ID is managed within the backend and is just a counter that is defined in (backend.c)[] of. 
+Data length varies with the command that is being sent, but the length of a command is constant. The data is sent 
+in a specific format set by commands. Lastly, checksum is computed within (backend.c)[].
\ No newline at end of file