En este trabajo se describe un sistema de localización 3D basado en ultrasonidos. Este sistema, el cual usa FPGAs de bajo coste y transductores de ultrasonidos y radiofrecuencia, permite la localización de dispositivos móviles en un entorno indoor. Para ello, una matriz de balizas se sitúan en el techo emitiendo simultáneamente señales de radiofrecuencia y ultrasonidos. Los dispositivos móviles que quieran conocer su posición deben muestrear las señales, que llegan en tiempos notablemente diferentes debido a la diferencia en sus velocidades de propagación. De esa forma, se puede extraer el tiempo de vuelo de la señal de ultrasonidos, y así obtener la distancia entre baliza y receptor. El dispositivo móvil se encuentra en la intersección de las esferas cuyos centros son los puntos donde se encuentran las balizas, y cuyos radios están determinados por las distancias medidas. La arquitectura en la que se basa el sistema de localización permite a los nodos localizarse de forma autónoma, sin necesidad de dispositivos externos, siendo el sistema escalable y manteniendo la privacidad de la localización de los dispositivos. El error medio cometido por este sistema de localización es menor a 4 cm, siendo óptimo para numerosas aplicaciones. Por otra parte, se ha desarrollado un sistema de orientación y navegación para los dispositivos móviles. El cálculo de la orientación se basa íntegramente en el sistema de localización, extrayendo el vector de desplazamiento cuando el dispositivo se mueve. Con dicho vector, la orientación, o el ángulo respecto al sistema de coordenadas de las balizas, puede ser extraído. El sistema de navegación permite a un dispositivo móvil moverse desde el punto actual hasta otro punto representado en el sistema de coordenadas del sistema localización. Se puede ver un vídeo con los resultados en http://www.youtube.com/user/HCTLab#p/u/2/n0vrqMzKuQA