Hacker News new | ask | show | jobs
by mltony 1240 days ago
iOS app Blind Compass https://github.com/mltony/blind-compass

I am blind and I developed this auditory compass for blind people that communicates your heading as two tones - musical interval between them encodes your heading. It helps white cane users not to get confused in space or walk straight across large open space by locking heading. It also makes me look like a lunatic, because I put iPhone into phone holder that I sawn to my hat to provide most accurate heading information.

The app is free, but I have to pay for Apple Developer subscription to keep the app in the app store.

1 comments

This is brilliant! It reminds me of the North Paw anklet, which I think dates from back when phones didn't include magnetometers.

If I keep my phone in a hip holster but get the audio over a Bluetooth earbud, is that likely to be useful? Do you wear it on your hat so you can swivel your neck and "probe" the compass response, or because you get better results up there in some other way?

I do use it with bluetooth headphones - bone conductance headphones, so that I can also hear the street. I tried to put my phone in the pocket, but then heading fluctuates with every step. I assume this might be enough for someone, but I prefer to hear accurate heading, wich allows me to walk straight comfortably.
> I tried to put my phone in the pocket, but then heading fluctuates with every step.

As you're the developer (and a blind user eating your own dog food) I might suggest (for those that want to put their phone in their pocket) looking at using a running filter to smooth the headings and remove the swing of every step.

Savitzky–Golay filters are particularly good for this and (pages of complicated math aside) are really as simple to implement as a straight running average (as you multiply a string of heading values with normalised weights and sum to get the "better heading" .. add a new heading to front of string, drop off the oldest heading from the back, repeat).

It gets into a lot more code, but integrating the accelerometer readings to figure out where in the step you are, and correct the magnetometer readings, could work. It would have to relearn any time the phone shifted in your pocket, but that could become a continuous process while walking.

Probably easier to just put the phone in a hat, though.