A method of establishing a range between a pair of ultra-wideband, UWB, transceivers comprising a first UWB transceiver with a second UWB transceiver using a process in execution upon the first UWB transceiver and the second UWB transceiver; wherein the process comprises; synchronizing the first UWB transceiver with the second UWB transceiver; transmitting a first packet comprising a plurality of UWB pulse bundles from the first UWB transceiver; starting a first timer associated with the first UWB transceiver upon transmission of the last UWB pulse bundle of the plurality of UWB pulse bundles; processing the received plurality of UWB pulse bundles upon the second UWB transceiver; synchronizing to a predetermined pulse within the UWB pulse bundles of the first packet using a circuit forming part of the second UWB transceiver comprising at least a first correlator and a first delay-locked loop; starting a second timer associated with the second UWB transceiver upon determining detection of the predetermined pulse within the last UWB pulse bundle of the plurality of UWB pulse bundles; transmitting a second packet when the second timer reaches a predetermined wait time from the second UWB transceiver; processing the received plurality of second UWB pulse bundles associated with the second packet from the second UWB transceiver upon the first UWB transceiver; synchronizing to a predetermined pulse within the plurality of second UWB pulse bundles of the second packet using another circuit forming part of the first UWB transceiver comprising at least a second correlator and a second delay-locked loop; stopping the first timer upon determining detection of the predetermined pulse within the last pulse bundle of the plurality of pulse bundles of the second packet; and calculating the time of flight in dependence upon the elapsed time of the first timer and determining a range between the first UWB transceiver and second UWB transceiver; and the predetermined wait time is known to both the first UWB transceiver and the second UWB transceiver. the process comprises; synchronizing the first UWB transceiver with the second UWB transceiver; transmitting a first packet comprising a plurality of UWB pulse bundles from the first UWB transceiver; starting a first timer associated with the first UWB transceiver upon transmission of the last UWB pulse bundle of the plurality of UWB pulse bundles; processing the received plurality of UWB pulse bundles upon the second UWB transceiver; synchronizing to a predetermined pulse within the UWB pulse bundles of the first packet using a circuit forming part of the second UWB transceiver comprising at least a first correlator and a first delay-locked loop; starting a second timer associated with the second UWB transceiver upon determining detection of the predetermined pulse within the last UWB pulse bundle of the plurality of UWB pulse bundles; transmitting a second packet when the second timer reaches a predetermined wait time from the second UWB transceiver; processing the received plurality of second UWB pulse bundles associated with the second packet from the second UWB transceiver upon the first UWB transceiver; synchronizing to a predetermined pulse within the plurality of second UWB pulse bundles of the second packet using another circuit forming part of the first UWB transceiver comprising at least a second correlator and a second delay-locked loop; stopping the first timer upon determining detection of the predetermined pulse within the last pulse bundle of the plurality of pulse bundles of the second packet; and calculating the time of flight in dependence upon the elapsed time of the first timer and determining a range between the first UWB transceiver and second UWB transceiver; and synchronizing the first UWB transceiver with the second UWB transceiver; transmitting a first packet comprising a plurality of UWB pulse bundles from the first UWB transceiver; starting a first timer associated with the first UWB transceiver upon transmission of the last UWB pulse bundle of the plurality of UWB pulse bundles; processing the received plurality of UWB pulse bundles upon the second UWB transceiver; synchronizing to a predetermined pulse within the UWB pulse bundles of the first packet using a circuit forming part of the second UWB transceiver comprising at least a first correlator and a first delay-locked loop; starting a second timer associated with the second UWB transceiver upon determining detection of the predetermined pulse within the last UWB pulse bundle of the plurality of UWB pulse bundles; transmitting a second packet when the second timer reaches a predetermined wait time from the second UWB transceiver; processing the received plurality of second UWB pulse bundles associated with the second packet from the second UWB transceiver upon the first UWB transceiver; synchronizing to a predetermined pulse within the plurality of second UWB pulse bundles of the second packet using another circuit forming part of the first UWB transceiver comprising at least a second correlator and a second delay-locked loop; stopping the first timer upon determining detection of the predetermined pulse within the last pulse bundle of the plurality of pulse bundles of the second packet; and calculating the time of flight in dependence upon the elapsed time of the first timer and determining a range between the first UWB transceiver and second UWB transceiver; and the predetermined wait time is known to both the first UWB transceiver and the second UWB transceiver.