Experimenting with Movesense — Flying Discs / Frisbee


This post summarizes my first experiments in using Movesense sensor attached to a flying disc.

Published on January 13, 2019 by Hartti

flying disc movesense data

5 min READ

During the 30 years I have played ultimate, I have always marveled how beautiful the flight of a frisbee is. So one could guess that when I got a couple of Movesense sensors in my hands, my first experiment had be to find out what the data from a flying disc throw looks like.

The Movesense sensor is a programmable, nicely packaged Bluetooth (BLE) capable small device, which (among others) contains 9-axis motion sensor (Accelerometer, Gyro and Magnetometer). Additionally, Suunto has developed an API to communicate with the device, which makes it a great experimentation & development platform.

The first task was to get the device attached to the disc. Luckily Movesense sensor contains two metal “legs”. My solution was to drill a couple of holes symmetrically around the center of an old disc and snap the sensor legs through these holes to hand on the bottom side of the disc. Based on my vague memories of high-school physics classes, bottom side would be aerodynamically better to (read: affect less) the flying characteristics of the disc. See the photos below of my setup.

As a result the top of the disc had two slight bumps in there as the legs of the device went all the way through the disc. The bumps were however minor and I hoped that the effect on flight of the disc would be minor.

Note to myself: Test if the device affects the flight differently when attached on the top of the disc.

The 10 additional grams on the 175-gram disc made the disc feel heavier and I had to mentally adjust my throws a little higher, but after a couple of throws the disc felt ok.

My simple hack to get the data out from the device was to use the sample mobile phone app provided by Suunto and stream the data during the throws to the phone and get the data later off the phone. This involves quite a few preparatory steps, as I had to build the iOS app from the source code and get it on the phone (quite ok description of the process is in here). I have described the steps to get the data off the phone in a separate article.

The results are in…

This is how 14 right-handed backhand throws and catches look like in the eyes of a gyroscope (sample rate is 104Hz). The throws were quite relaxed and the throwing distance was about 10 meters. The disc was dropped once. That drop caused the chaos-like data between the 9th and 10th throws.

Not surprisingly the throws can be easily distinguished as the z-axis rotation values are high and stable for a while. But wait! Why are the rotation “peaks” completely level on some throws and in some throws the rotation seems to decrease slightly during the flight?

Well, that’s because during some of the throws the disc spun so fast that the Movesense gyro maxxed out. The maximum value for the gyro on the Movesense device seems to be 2293.47998 degrees, which translates roughly to 6.4 revolutions per second (Hz). This means that in my test the disc rotated faster than 6.4 times per second in 11 of the throws, and I still did not have a clue how fast the disc really rotates during a normal throw.

However, in this initial data set there are 3 throws where the gyroscope provided some useful data to calculate the rate of change of the speed of revolutions of a normal throw (of course this can be affected by the device attached to the flying disc, so I am not stating that this is the correct value for a normal ultimate disc). The rate of change of angular velocity seems to be roughly between -0.84 and -1.01 rad/sˆ2 (or in other words, the disc’s rotation slows down 0.13–0.16 revolutions per every second).

Magnetometer to the rescue

Thanks to the magnetometer, which is also available on Movesense device, we can estimate the rotation for those throws were the gyro maxxed out. Here is the magnetometer data from the same 14 throws.

The throws are again clearly visible as quick oscillations on all axis. Below you can see the graph for one throw only. The rotation creates a quite nice sin-wave looking oscillations, right?

With some manual data analysis (mark the local maxima of the oscillations and then divide the number of oscillations during one throw with the time interval between the last and first oscillations), I concluded that the fastest rotation was on the ninth throw — about 8.5 Hz. I also calculated the rotation using magnetometer data for the three throws for which I had useful gyrsocope data and the results matched quite nicely. So far so good.

The one thing which bothered me a little is the varying amplitude of magnetometer oscillations between the throws going opposite directions. (The amplitude of the oscillations is larger on all axis for odd-numbered throws than on even-numbered throws — check it yourself!) I later asked this from a person way more knowledgeable about magnetometer data and he was able to explain the data to me. Unfortunately I did not write the explanation down, so I need to study that issue more to be able to describe the phenomenon myself.

Note that I did also record the accelerometer data for these first 14 throws, but that does not help in finding out the maximum rotation. I am planning to study the accelerometer data in future posts to see the differences in backhands, forehands and hammers.

Next steps

As the new firmware version for Movesense device (1.8.0) contains much improved and more reliable Bluetooth streaming I decided to wait until that version is available to continue my tests. I was recently able to update the device firmware using iPhone, so I should get more data soon to carry out tests like:

  • What is the maximum rps I can crank out in a throw?
  • How much difference does it make to have sensor attached to the top / under the disc
  • Can I estimate the speed of the throw from the accelerometer data?
  • Can I recognize the throw type based on the available sensor data?
  • Can I recognize the thrower from the available sensor data? In other words: Does throwers have their throwing fingerprint? (I hope so, but I do not think so :-)