Quadcopter From Scratch

I was wondering if anyone has made a quadcopter from scratch and how hard it was.

By "from scratch" I mean:

  • Programming your own flight controller and ESCs in C;

  • Using say PIC microcontrollers instead of an Arduino kit;

  • Interfacing sensors like GPS, gyroscope, accelerometer, barometer, etc to the flight controller;

  • Interfacing the receiving antenna to the flight controller;

  • Incorporating power management such as power distribution boards / power management units.