Detect a tap using accelerometer

To save me re-inventing the wheel, can anyone provide algorithms for detecting taps on the watch using the accelerometer on the VA-HR?

I would like to be able to respond to a single or double-tap on the side (y-axiz) or the face (z-axis) of the watch to use as an alternative user input to a touch-screen horizontal or vertical swipe for when the watch is wet (dinghy racing can be a wet sport!) and doesn't respond well to the touch screen.

I have played with the AccelMag sample, so am encouraged that it's possible.

I can see that it'll need a timer with a pretty fast refresh rate, looking for a distinct variation from the background levels and look for distinctive patterns, and I'm sure there are folks out there who have done the hard yards to R&D some appropriate values.
  • I think you have misinterpreted the doco. There are no "tap regions". It is just a recommendation that when designing a touch-screen UI, the touch areas be limited to a 3x3 grid.

    on the va and I believe the va-hr, there are actually 9 physical regions (in the right light, you might actually see the boundaries on the device screen) (it's not the same on other Garmin devices.). On the va for example, if you touch anywhere in a region, you get the same x/y.. On other touch devices, you get the real x/y. The nine region suggestion in the UX guide actually came from the original va, and the va-hr is kind of that screen turned 90 degrees.
  • On the va-hr for example, if you touch anywhere in a region, you get the same x/y last I checked.

    Maybe it's time to check again? ;)
    Anyhow, this thread is not about detecting screen touches (that was a different thread), it about detecting taps with the accelerometer.
  • Maybe it's time to check again? ;)


    See footnote #6 in the UX Guide. (2.2.5 SDK)

    It sounds like detecting the vibration from taps won't work, so I was just trying to suggest options. Sorry....
  • My "right now" was my way of leaving the door open for future possibilities. I'm not privvy to anything that would suggest this is a feature that's planned. :) However, given that we do have accel hardware and have some signal processing capabilities, it's plausible that some kind of tap detection may be available on future devices.
  • I understand that you can't make any promises for the future, but could you open the door a crack and tell us if the hardware reports the tap natively?
  • I'll ask about it and see what I can find out. :)
  • Okay, this is what I got, straight from the sensors team:

    Accelerometer rates in the range of 400 Hz [are needed]. Even then it’s pretty hard to do and its really fickle.


    Apparently, the accelerometer we use has an internal algorithm that we've tried using in some other products, but we haven't been happy with the performance yet. So, it's something that we're at the very least experimenting with, but I don't think the hardware currently available is suitable for this application.
  • Hey Brandon, thanks for the update, but once again your response is so, so, tantalizing!

    Apparently, the accelerometer we use has an internal algorithm that we've tried using in some other products, but we haven't been happy with the performance yet. So, it's something that we're at the very least experimenting with, but I don't think the hardware currently available is suitable for this application.



    I wonder if that is a qualified response from the engineering team or perhaps a personal perception of the situation?
    I would be disappointed to learn that a sparkling new product like the VA-HR contains anything other than the latest range of components. The reference I quoted, of a chip capable of tap detection, was from a 2010 publication: Sensitive accel microchips have been around for a very long time now.
  • My comments were more or less a paraphrase of the "official" response from the sensors team, so you can consider that a qualified response. I can't get into details beyond what's already been stated because I either don't have more info to share, or we'd be crossing into proprietary info territory. :) Since our devices are all purpose-built and not necessarily intended for general applications, I'm certain that the hardware we've selected is the best for their intended purposes. Had tap detection been part of a product's design, I have no doubt we'd have hardware that's up to the task.

    Now some pure speculation from me: It's probable we'll have this available in the future. If we're already looking at ways to incorporate this into our devices, then that suggests we have some good use cases in mind. We just need to get it working reliably enough that our engineers are happy with the performance.
  • I'd suggest to add in the future SDK something that can be called "actions", not only double-tap, maybe connected with MoveIQ feature - as it recognizes activity. App can sleep until the subscribed action appears. It should be detected on firmware side, not CIQ, as it is very far from real HW.
    Somebody will ask for triple-tap, chop wood, ride horse, wrist rotation, pushes, jumps, etc.