Measuring the locations of people and things in a building is an important part of ubiquitous computing. We present new hardware and software for this purpose. The hardware, called SmartMoveX, is an active badge system in which a small radio transmitter is attached to the person or thing being tracked. Receivers placed in the building’s existing offices, connected to existing PCs, transmit signal strength readings to a central PC using the building’s existing computer network. Combined with the low cost of the hardware, using the existing network makes this active badge system much less expensive than many others. To compute locations based on signal strength, we gathered signal strength readings from predefined location nodes in the building. We defined a graph on these nodes, which allowed us to enforce constraints on computed movements between nodes (e.g. cannot pass through walls) and to probabilistically enforce our expectations on transitions between connected nodes. Modeling the paths with a hidden Markov model, we used the Viterbi algorithm to compute optimal paths based on signal strengths over the node graph. The average location error was 3.05 meters, which compared favorably to a simple nearest neighbor algorithm’s average location error of 4.57 meters.