A speck is intended to be a miniature (5X5X5mm) semiconductor device that combines sensing, processing, wireless communication and energy storage capabilities. A specknet is an adhoc wireless network of specks. The location of specks in the network is useful in processing information, for reasons ranging from routing data to giving the data sensed a spatial context. This paper presents an algorithm for discovering the location of specks and updating that information in the face of movement. The proposed algorithm exploits the location constraints implied by the sensed directions to a speck’s onehop neighbours in order to compute a likely location. Direction information may be gleaned in a robust manner through the use of freespace optical communications systems. The algorithm is fully distributed, requires no special infras...