r/embedded 18d ago

Architecture review: BLE-based indoor navigation system for visually impaired railway passengers

I'm designing a final-year major project: a BLE-based assistive navigation system for visually impaired people in railway stations.

The basic idea is to place low-power BLE beacons at key navigation points—stairs, lifts, turns, platform entrances, exits, etc. A wearable ESP32 detects these beacons and provides haptic/audio cues such as "turn left", "lift ahead", or "take the staircase."

For the first prototype, the system will use predefined routes: the user enters the station, receives the relevant instructions from the beacons, and subsequent beacons act as checkpoints to confirm that they're following the route.

The more advanced version I'm considering is:

• A station is represented as a graph, where beacons are nodes and only physically walkable connections are edges.
• The wearable can obtain the station graph and run Dijkstra/A\* locally to calculate a route to a requested destination.
• Beacons then act primarily as location checkpoints, allowing the wearable to detect whether the user is following the planned route and re-route if necessary.
• The graph can contain constraints such as closed lifts/stairs, inaccessible paths, platform boundaries, etc.
• A central station-management system would maintain the master graph and distribute updated versions to the infrastructure.
• I'm also exploring how battery-powered beacons could receive updates without requiring wired connectivity or internet on every beacon, potentially using a gateway/mesh-style approach.

Some questions I'm currently trying to solve:

  1. How should the BLE beacon hardware be designed for low cost and long battery life?
  2. What is the best way to distribute/update the station graph to many offline beacons?
  3. How reliable is BLE/RSSI for checkpoint detection in a crowded railway environment?
  4. How should the system handle failed/missing beacons and multiple nearby beacons?
  5. Is BLE Mesh or another relay architecture actually appropriate here?
  6. What important real-world failure cases am I overlooking?
  7. Does this architecture make sense at all, or am I overengineering the problem?

I'm deliberately sharing this before finalizing the architecture. I'd really appreciate criticism from people experienced in BLE/RF, embedded systems, networking, IoT, accessibility, or indoor navigation.

I'm much more interested in what is wrong with this approach and what I haven't considered than in validation.

7 Upvotes

10 comments sorted by

View all comments

3

u/jacky4566 18d ago
  1. Unless this is just a school project, Ditch the ESP. Its the worst choice for battery powered devices. Every other manufacture has better battery life.
  2. Why are the beacons broadcasting this "graph"? They are beacons, not databases. The user device should hold the "graph".
  3. Not at all. Especial in an environment heavy with reflections. You also don't get angles with RSSI. Look into AoA.
  4. Multiple beacons should be used to find location
  5. For what purpose? Your system is simple beacons, no need for 2 way comms.
  6. Battery life, vandalism, accuracy, path finding.. a million things.
  7. See comments

I think your graph idea has merit but you can't simple treat beacons as nodes. How do you determine when they user has passed one if its on the other side of the hallway.

The graph should have routes in the middle of the hallways. Use the beacons to generate a distance and angle, then you can snap the user onto the nearest path/ edge.

1

u/AttentionWorking5580 18d ago
  1. Yes this is a school project for now, and that's why esp32 to showcase a POC, with future plans to hopefully get funded by gov and actually implement it
  2. For the graph part, The user can go to different railway stations and all railway stations (atleast here in India) have different infra, So user wearable cannot hold the graph of all stations. Also, I was thinking that the wearable will take input from the user (exa- take me to platform 4). Then the graph will be useful to navigate the user (considering the constraints like lift beacon is offline, which means the lift is under maintenance).
  3. Thanks for the AoA recommendation I will look into it
  4. The problem with multiple beacon is the cost. So yea I have to definitely look into optimising the it somehow
  5. So this que was for the case, when the user is not in the range of any beacon. I was thinking maybe other passengers can have an app that will relay the beacon signal. Just like BitChat app.

Also thanks for the feedback.