This is the project page for the prototype/proof of concept, using the Arduino IDE and breakout boards for testing. I still need to take the little guy out and test it against a transit compass and a strike and dip phone app to see how it compares, and I'll be updating the project with the results as soon as they're completed and written up.
It uses the American right-hand rule for strike measurement. The POC version does not have a means of setting the magnetic declination other than hard coding it, but the STM32 version will have extra buttons for that.
This project would have been really easy to put on a standard through-hole prototype board, but I wanted to have a board custom made because it made me giggle. It turns out that I'd accidentally used the wrong Adafruit 9DOF in Fritzing, so that's why the two "noses" on the right side of the accelerometer are chopped off. There's also a really ugly jumper soldered from the empty pin made from the shift to the right to the actual power pin on the 9DOF.
The repository for the prototype pictured here is at https://framagit.org/JakeSparkleChicken/StrikeDipC
The repository for the current project is at https://framagit.org/JakeSparkleChicken/strike_and_dip_stm32f7