Close

Local Positioning System (LPS)

A project log for Magnetic Road Transport System for TT Scale Layout

Magnetic Road Transport System for TT Scale Layout — DIY Control on ESP32

oldaOlda 5 hours ago0 Comments

I’ve been trying to improve how accurately I can determine vehicle positions on the layout. The original approach was purely theoretical – position estimated from speed and direction (dead reckoning), with occasional corrections using Hall sensors.

I also experimented with other approaches (e.g. ultrasonic), but those quickly turned into a dead end – too complex, unreliable, and without any real benefit.

In the end, I settled on something that could be described as a local “GPS-like” system – a simple LPS based on RSSI using ESP-NOW.

Implementation

On the test quarry layout I’m currently running:

Each vehicle (worker) uses an ESP32-C3 that periodically broadcasts a simple packet with its ID.

The corner nodes receive this packet and evaluate signal strength. The result is four RSSI values (in dBm), which are then used to estimate the vehicle’s position within a predefined track.

Why this makes sense

RSSI on its own is noisy and inaccurate. Dead reckoning alone drifts over time. Hall sensors are precise, but only at specific points.

So instead of relying on a single method, I combine:

The result is not an exact position, but a stable estimate that is continuously refined.

frequent imprecise measurements + occasional precise corrections = usable reality

Result

The goal is not millimeter accuracy.

At vehicle speeds around 2 cm/s, the system allows me to:

For controlled operation, this is more important than absolute precision.

Context

On paper, this is a bad solution. It combines imprecise methods and ignores “cleaner” approaches.

In this specific context (low speed, constrained space, known trajectory), it makes sense and performs better than trying to force a perfectly accurate solution using a single method.

Conclusion

The goal here is not to find the most accurate positioning method, but one that enables:

In other words:

I’m not solving “where exactly it is”, but “how the system behaves as a whole”

Discussions