This paper presents a method for localization of a drone using ultrasonic and radio frequency signals. The system consists of several receiving nodes and a beacon which can be incorporated into a landing pad or onto a moving object in a GPS denied environment. Five receiving nodes are mounted on the arms of a quadrotor, and by measuring the time of arrival from when the ultrasonic signal is produced to when it is received, the distance between each receiver and the beacon can be calculated. The quadrotor requests an ultrasonic signal from the beacon through a radio frequency signal. Through multilateration the position of the quadrotor can be determined relative to the beacon. Threshold detection is used to determine if an ultrasonic signal has arrived and time difference of arrival is used to determine the 3D position using linear least squares to solve the system of equations. A Kalman filter is applied to smooth the position data. A vertical sonar sensor is used to improve height accuracy due to geometric dilution of precision of the receivers. Time division multiple access is applied to avoid interference between the sonar and the localization system. The refresh rate of the system is 5 Hz to allow the signals to decay and avoid multipath propagation. Preliminary experiments show an average accuracy within a one-metre radius of ±9.9 cm with the motors at full throttle. The accuracy of the system improves while hovering over the beacon at a 50 cm radius with a ±6.2 cm accuracy. Autonomous hover has been performed within a GPS denied environment.