# Quadcopter The `quad/` directory contains all code that programs the quadcopter. This includes any C libraries we have written, any HDL to program the Zybo on the quad, and the XSDK main project that runs on the Zybo. ## Documents [Zybo Pinout Assignments](doc/zybo_pinout_assignments.md) [How to use Xilinx software tools](doc/how_to_use_xilinx_tools.pdf) ## Software Instructions The main quad application is written as a library, and located at: ``` src/quad_app/ ("main" function in quad_app.c) ``` The main XSDK project that actually runs on the Zybo is located at: ``` xsdk_workspace/real_quad/ ``` We also have a complemetary "virtual quad" to ease testing: ``` src/virt_quad/ ``` ## Building To build the libraries: ``` make ``` You can also build each library individually inside their respective project directories: ``` cd src/<project> && make ``` To build the XSDK project, use the XSDK IDE. Source the proper XSDK files, and then start up the XSDK IDE. Be sure to select the `xsdk_workspace` directory in the quad directory as your "workspace": ``` source /opt/Xilinx/14.7/ISE_DS/settings64.sh xsdk & ``` ## Testing _Write tests! It makes automating things so much easier._ Run the unit and functional tests: ``` make test ``` You can also run the test for a specific library inside its respective project directory: ``` cd src/<project> && make test ``` ### Manually testing the hardware interface Of course, we cannot run our automated tests on code that needs the Zybo. But we have manual tests that you can use to test each specific driver in the hardware interface. Look in `xsdk_workspace/real_quad/src/hw_impl_zybo_tests.c` for instructions. Ideally, you would run these tests from the XSDK IDE.