This is the culmination of decades of effort towards measuring roller coasters. I have made several such attempts, from a bench project that would have taken a rack of equipment, to an analog MEMS unit which fit into a fishing tackle box, to a fully digital unit that actually made it into space.
The impetus for this project is the uBlox NEO-M8U GPS+IMS. It claims to have the Extended Kalman Filter (EKF) needed to properly integrate acceleration measurements and combine them with the GPS measurement.
My plan then is to take one of these as the primary measurement. I will put it on a board which is easy to smuggle onto a roller coaster. I will sew a pocket into the inside of the shoulder of my shirt, slip the board with the GPS into that, then run a cord down to my pants pocket where there is a data logger running. Between the GPS and any photos I take with any other camera with an accurate timestamp (such as a phone or GoPro with GPS) I can just let the device run all day long. I will use the photos to tell what I was actually doing at any particular time.
In my previous attempts, the pocket has not been a terribly stable platform. I have wondered if maybe it would be possible to put the sensors in my shoe. I would then jam my foot up into a corner of the roller coaster car. That would make a very stable platform, and hopefully my shoe itself would act as a good vibration isolator.
So, the wearable pocketometer comes in three logical components: The pocket board, the shoe board, and the shoulder board. Each board will have a set of MEMS sensors, because why not? They are cheap, compared to the price of the rest of the project.
The Shoulder board will have the NEO-M8U. The GPS will be recorded, as well as both the raw sensor measurements and the EKF position estimate, at as high a rate as the part supports. In order to independently verify the measurement, the shoulder board will carry not one, but two, STMicro LSM6DSO 6DoF sensors. Why two? Because I can't fit more. Honestly, it is only two because I can only put two on the same I2C bus (address limitation).
ST Micro makes a 9DoF part with a built-in magnetometer, but it is much older and doesn't have any noise specification. It's also in a harder-to-use package. It would make sense to use one of those, but instead, I will use an independent AK09970 3-axis magnetometer.
For completeness, I will also include a Bosch BME280 pressure sensor. I have had good results previously with a previous version of this sensor. It is accurate enough to clearly observe the altitude change over a roller coaster track.
All of these sensors will be controlled by a PRJC Teensy 4.1. This is an incredible machine, with power comparable to the Cray supercomputers of old. It runs at 600MHz, has an SD slot that can accomodate a multiple-gigabyte storage device, three exposed I2C busses, and in general everything needed to make the ideal digital data recorder. This computer is easily programmed using Arduino and the Teensyduino libraries.