4/11/16

	-Added Compiler if's for selecting number of Crazyflies
	-Added Position storage variables for each Crazyflie (Used for mirror mode)
	-Updated Mirror Mode to 'Chain Mode' (cflie 2 setpoint depends on cflie 1, and cflie 3 setpoint depends on cflie 2)
	-Added Yaw +45 deg and -45 deg command to keyboard inputs (For Crazyflie 1 ONLY)
	-Changed Keyboard Input scan into a function
PUSHED TO GIT
	-Added correction for Pitch and Roll error depending on current yaw (needed to convert from deg to rad for sin & cos)
		-Calculated and Set Error for X and Y controllers Manually
		-Added functions to controller.c to set error for X and Y PID's
		-Changed Update Error in X and Y controllers to FALSE 
PUSHED TO GIT
END OF DAY




4/12/16

	-Current Radio Power is set at 0dBm (Line 185 of CCrazyRadio.cpp)
	-Fixed Gyro functions in CCrazyflie.cpp (Line 325 - 333)
	-Added cheatProcessPackets to process all quads packets before moving to the next 
		-We may only need to process packets from the previous callback (TRADEOFF between performance and crosstalk)
		-Statistically we'd expect each callback to happen in succession in most cases?
	-REMOVED: Correction for Pitch and Roll relative to Yaw is causing cflie 4 to freak out.
	-Added independent error update for mirror mode step in callback 1
PUSHED TO GIT
	-Adding 4th Crazyflie + Callback ON RADIO 1
	-Added framework for timing Total loop time in vrpn.cpp
	-Moved 4th Quad to 2nd Radio
PUSHED TO GIT
END OF DAY




4/14/16

	-REDACT:(It makes it worse) Modify sendSetpoint time to see if it speeds up the control loop (CCrazyflie.cpp line 54)
	-Modify readACK() to include header info about power and # of re-transmissions
	-Shifted default y-setpoints up to fit more crazyflies in the camera zone.
	-Added Total Loop timer to vrpn_go and extern the values to the logger. 
	-Tuning X Y and Z PID constants
PUSHED TO GIT
END OF DAY



4/15/16

	-Added enum for flight mode 'state' into Crazyflie Class
	-Automated Landing Process to kill motors when near ground
PUSHED TO GIT
END OF DAY



4/18/16

	-Changed TakeOff Mode to boost thrust for first 0.5 seconds
PUSHED TO GIT
END OF DAY



4/19/16

	-Added Controller command outputs (Pitch, Roll, Yaw, Thrust) to logfile
	-Using Mirror Mode for modeling purposes (Step response)
	-Created new updateHand function in vrpn.cpp for hand flight demo
	-Added HandMode for crazyflies to follow hand XY position

	-FIRMWARE MODIFICATIONS
		-NOTE: LOG GROUPS ARE IN STABILIZER.C
		-Added Output variable to PID class
		-Added Line in controller to update error
		-Added Logging Groups to controller.c
		-Included log.h into controller.c to enable output logging
		-Added params for controller outputs in controller.c

		-STILL BROKEN
PUSHED TO GIT
END OF DAY



4/21/16

	-FIRMWARE MODIFICATIONS
		-Removed all changes made previously
		-re-Added in pid->out to the struct and assigned it during controller update (pid.c and pid.h)
		-re-Added log block creation in controller.c for logging both PID ang pos and PID ang rate

	-Fixed setpoint mistake in crazyflie1 takeoff 
	-Moved crazyflie3 to Radio2
	-Increased Hand Mode Trigger counters to 5 before changing modes via gestures
	-Added Startlogging, disableLogging, and initLogging functions to crazyflie.cpp
	-Added logging value read functions for all the pid outputs and pid rate outputs
PUSHED TO GIT
END OF DAY


4/23/16

	-Shifted Mirror Mode Master closer to middle of camera zone
	-Reduced step interval in Mirror mode to 4 seconds (was 8)
	-Tuning XY PID's, adding more ki : Increased to 2.0 (was 0.75)
PUSHED TO GIT
END OF DAY


4/24/16

	-Adding Start Logging to get RSSI Data
	-Removed Logging for Magnetometer and Altimeter to see if it improves runtime, since we don't need it(TEMPORARY)
	-Flashed All quads to New Firmware (did work at least twice)
	-Logging RSSI Data in the logfiles
	-Drastically changed Z PID constants to account for thrust compesation from new firmware
PUSHED TO GIT
END OF DAY

4/25/16

	-Tuning XY PID's
	-Reduced ARD to 2000 micro (was 4000) to improve runtime with packet drop
	-Changed landing mode to work better with new Z PID (Changed setpoint to -0.4 (was -1.0))
	-Modified cflie 3 and 4's hover X setpoint to stay in bounds more
	-Removed jn_pid log group (TEMPORARY)
	-Changed Radio Dongle power to -12 dBm (was 0 dBm)
PUSHED TO GIT
END OF DAY


4/28/16

	-Increasing Limits of integration on XYZ PIDs 
	-Tuning PID's more
	-Fixed error in RunCrazyflie Calling wrong radio??
	-

4/29/16

	-Increased Radio Power to -6 dBm
	-Fixed some radio call typos in the callbacks
	-Changed the RSSI logging and function to int
END OF DAY

5/3/16

	-Changed Y PID back to match X
	-Removed sendDummyPacket() slowing system down
PUSHED TO GIT
END OF DAY


5/16/16

	-Removed nRetries and Power variables from CCrazyRadio.cpp
	-Fixed Variable to remove Hand Callback in compiler
	-


5/25/16

	-Added Camera Eul Angles to logging
	-Added Individual Motor Logging
PUSHED TO GIT
END OF DAY

5/26/16

	-Added Gyro rates to log file
	-Flashed Ian's Old Firmware to all the quads
END OF DAY

6/9/16

	-Flashed Brand new firmware onto All Crazyflies
		-Adds new Rate Controller PID constants that improve flight
	-Increased Yaw Kd from 0.5 to 0.8(compensate for new changes in the stability)
	-Increased Yaw Kd to 2.0
	-Decreased Yaw Kd back to 0.5 (Stability issues were being caused by delay from logging)
CAN'T PUSH TO GIT (SERVER DOWN)
END OF DAY

6/10/16

	PUSHED TO GIT
	-Added Experimental PID rate constants for Firmware
	-Changed Yaw Kd to 2.0 (GOOD)
	-Fixed Flying 2 quads if we want (If you try to call any mention of a crazyflie pointer that doesn't exist it will end program...)
	-

6/15/16

	-Added Hand Logging
	-Fixed Matlab file (Pitch and Roll Flipped)

6/22/16
	
	-Flashed new NRF Firmware to all quads
	-Added RSSI logging to ONLY Cflie1
	-
	
6/23/16

	-Changed Firmware YAW_MODE to CAREFREE (Commander.h LINE 36)
	-Removed Pitch & Roll setpoint correction based on yaw (done on firmware now with above line)

6/24/16

	-Added 3rd radio with cflie3 on radio 2 and cflie 4 on radio 3 exclusively (testing timing of switching radios vs dedicated radio comms)
	-

7/12/16

	-Changed Hand Mode follow to track Yaw as well
	-REMOVED YAW tracking (Works, but not very impressive)

7/19/16
	-Added carriage return to Print statements when changing flight modes

8/3/16
PUSHED TO GIT

END OF JUSTIN's LOG (GRADUATED)





	TODO:	Add a 5th Crazyflie
			Tune XY PIDs (more ki***)
			Add StartLogging(jn_pid) to crazyflie.cpp
			Create functions for reading values from logger in crazyflie.cpp(return this->sensorDoubleValue("pid.out"))
			Look into CAREFREE Mode on New Firmware!! (commander.c line 194, line 210, flightMode Param in GUI) ***COMMANDER.H LINE 36***
			Use Sound effects to test sending custom packets to quad. (system.c line 210: sound_cf2.c line 181)
			CHECK HAL/SRC/RADIOLINK.C for RSSI
			Firmware: log.c line 283 (multiplies logger by 10)
			
			Position_Controller_PID.c has a FIRMWARE position controller implementation already, need to be able to send floats
			Stabilizer.c: "vTaskDelayUntil()" line 102.
			CCrazyflie.cpp: (LINE 85) Use to send setpoints to commander channel 3 
			estimator_complimentary.c: (LINE 28) This is where position estimate is set to 100 Hz
			
	NOTES:
			Changing Logging Time step does not affect the loop time at all (WRONG)
			NEED TO REDUCE SINGLE CALLBACK TIME, EACH ONE TAKES 0.006 sec SO CAN'T FIT 4 IN 0.01 sec
			Can't make any mention of a Crazyflie Pointer that doesn't exist, otherwise code will end (CRASH)!!

 			tools/make/config.mk.example

			+## Automatically reboot to bootloader before flashing
			+# CLOAD_CMDS = -w radio://0/100/2M/E7E7E7E7E7

		Timing Diagnostics:

			Removing manual PID error update does not Reduce loop time
			Removing Crazyflie read requests does not have significant effect in reducing loop time
			Removing Pitch and Roll Correction did help reduce loop time (moved to firmware)
			COMMUNICATIONS IS THE PROBLEM, NEED THREADING