Inspiration
SFU Burnaby’s concrete buildings and complex indoor walkways make navigating campus tough especially in bad weather. Standard GPS app routes don't work well for indoor mountain campus layouts. We built SFU Compass to give students a simple physical kiosk that maps out the fastest indoor walking routes instantly.
What it does
Users choose their starting point and destination with a joystick. SFU Compass calculates the shortest route within our campus graph and displays instructions and approximate walking distances on an LCD.
The web interface highlights the route on an interactive campus map. On the hardware, an 8×12 LED matrix shows a simplified campus layout with the current instruction’s path blinking. Users can move forward and backward through instructions using the joystick.
A desktop bridge connects the Arduino to the web interface over USB. Our current prototype guides users between selected landmarks, with progress controlled manually.
How we built it
We connected an Arduino UNO R4 WiFi to a joystick and a 16×2 LCD, and used its built-in LED matrix for the miniature map. The Arduino firmware handles user input and updates both displays.
Our Python backend represents campus landmarks and connecting junctions as a graph. Dijkstra’s algorithm finds the shortest route using the graph’s distance estimates. The backend sends each instruction and its corresponding LED pattern to the Arduino through a single USB serial connection.
We built the web interface with HTML, Tailwind CSS, JavaScript, and Leaflet.js. Custom label positions keep building names readable in crowded areas. We also used AI tools to help develop and debug parts of the project.
Challenges we ran into
Getting the LCD to show text required troubleshooting its wiring and contrast. Once it worked, we had to coordinate joystick input, route instructions, and display updates without making the controls feel unresponsive.
Fitting a campus map onto just 96 LEDs was another challenge. We simplified the layout and made each instruction highlight its actual route segment, including the connecting junctions.
On the web map, labels around the Shrum Science Complex overlapped. We adjusted individual labels to appear above, below, or beside their buildings.
Accomplishments that we're proud of
We’re proud of connecting physical controls, a Python route planner, and a web map into one prototype during our first hackathon.
Seeing a joystick selection become a route and then showing that route through instructions and blinking LEDs was especially satisfying. We also made the web map easier to read while keeping the hardware interface simple.
What we learned
We learned how to apply graph algorithms to a practical problem, exchange data between Python and an Arduino, and design information for displays with very limited space.
We also learned how much integration matters: working components still need consistent messages, careful wiring, and testing to work together. Keeping our scope manageable helped us make progress as a team.
What's Next for SFU Compass
We want to verify routes and distances on campus, expand building coverage, and add floor connections through stairs and elevators.
We also want to introduce accessible route options based on verified accessibility information, add audio instructions, and build a custom enclosure.
Longer term, we’d like to explore indoor location tracking and wireless communication. Testing with students will help us decide which improvements would make the biggest difference.
Log in or sign up for Devpost to join the conversation.