Further aspects of the disclosure provide for a non-transitory, tangible computer-readable storage medium on which computer readable instructions of a program are stored. The instructions, when executed by one or more computing devices, cause the one or more computing devices to perform a method. The method includes detecting a misalignment between a first optical system of a first communication device and a second optical system of a second communication device; rotating the first optical system according to a primary search pattern and the second optical system according to a secondary search pattern, the primary search pattern including keeping the first optical system fixed for a set amount of time, and the secondary search pattern comprising a series of positions ordered in increasing distance from a starting position; capturing a set of frames at the second communication device; determining whether a beacon beam transmitted from the first communication device is detected in one or more of the captured frames at the second communication device; and forming a communication link between the first communication device and the second communication device when the beacon beam is detected.