Wander Compass
A wearable that takes you to streets where you've never been before
Tags: Hardware, Wearables, Mobile, IoT, Design
About the project
Wander Compass is a wearable that sits around the back of your neck. This device helps you discover your city and breaks you out the routine of everyday life.
Wander Compass is a project created to help people break their habits and explore the city the live in. This device sits in the back of your neck and connects to your phone to track your realtime location in a private and secure way. Whenever you're approaching an intersection of streets, the device vibrates on either the left side, right side or center back of your neck to notify you the direction of a street that you've never walked before.
The 3D printed body of the wearable was designed in Fusion 360. The PCB circuit was designed and assembled using Surface Mount Technology (SMT), allowing me to miniaturize the board's footprint and pack more functionality into it. The device contains three haptic motors, a power button, a 500mAh LiPo battery and a micro-USB port for changing. Thanks to the Bluetooth LE IoT stack that was used, a single charge lasts more than three weeks of use.
The data that represents the streets was created in GeoJSON using cutting-edge GIS technology. The project uses a series of components (described below) to guide to user through their city in real time.







About the form
At first I looked at making a "pendant" style device that gave walking directions through a screen. I wasn't too crazy about this idea since the whole design intent behind this project is to keep people from looking at a phone screen while walking down the street.
I looked into vibration as a way-finding tool and played with different form factors: wrist and ankle bracelets, watches, or even finger rings. All of these felt a bit too direct. There wasn't any surprise or novelty in any of those ideas. Sure, sometimes this is what we want when engineering a product, but for this one, I wanted a more exciting way of giving directions.
I had the feeling that having something around your neck might make the experience feel more personal and seamless. I built the first prototype with cardboard to validate the electronic components and overall feel around the neck. Once I learned that the form factor worked, I switched to clay to explore the refined form that ultimately became the final one.




How does it work?
Wander Compass is a system of components. It contains an Android app, a server, a debuging web-panel and a wearable. All the components perform very timely and specific tasks described below.
First, the realtime GPS location is captured via the Android app. The coordinates are sent to the server via Socket.io where complex routing algorithms run and the server determines the orientation (left, straight or right) of the unknown street for the intersection where the user stands at in real time (i.e. the corner of Broadway and West 4th St). The server then pushes that orientation back to the Android app and is then pushed to the wearable via Bluetooth LE. The wearable then determines which vibration patterns to perform to notify the user that it is time to take a new, unexpected turn. The control panel serves as a debugging tool, allowing the visualization of the location data in real time.


Final words
This project was extremely fun to develop. I used many disciplines that I really enjoy working with, and took a concept from an idea to a physical and working device. There were important challenges, such being able to determine what 'right', 'left' or 'straight' mean in terms of spatial GeoJSON databases – a continuous trial and error prototyping practice is what made it possible to develop and overcome those challenges.
The technology behind this project can be used for many other novel navigation-related applications. I am looking to develop it into other areas in the future.
Tools
- Arduino (RedBear Nano)
- Eagle
- Surface Mount Technology (SMT)
- Bluetooth LE IoT
- Fusion 360
- MapBox + Turf.js + GeoJSON
- Socket.io + Express.js
- Android Development (Java)