This project studies the implementation of a distributed formation control algorithm using several nano quadcopters called Crazyflies. The control system contains two modules. The high-level control module is applied to generate the desired way-points for individual Crazyflies, and the low-level control module is used for stabilizing control of Crazyflies to follow trajectories formed by the way-points. The overall control algorithms were implemented with the aid of a python-based library developed by Bitcraze. Specifically, localization of Crazyflies was handled by an anchor-tag system known as the Loco Positioning System (LPS). A remote computer was used to run the high-level control laws and to transmit control signals to Crazyflies through a Crazyradio PA dongle. The radio can send multiple radio control signals to several Crazyflies at once, which allows us to update each Crazyflie's position individually. The on-board microcontroller of the Crazyflie handles the low-level PD and PID control algorithms for quick response and stabilization. Experiments including hovering control, trajectory following, and formation control were successfully conducted in an indoor environment.