This was a firmware development project for a PIC18F2423 micro-controller based motion sensor for Doug Stock of Digital Structures. The goal of the project is to create a device that sits on off shore oil drilling platforms and monitors the movement of the platform in relationship to the drill. All movement is aggregated and later picked up by Digital Structures Inc. which analyzes the information ro provide feed back on the structural engineering requirements to make off shore oil drilling platforms less likely to fail.

The component I was working on housed the ADIS16203 Inclinometer. The firmware provided a console for configuring and calibrating the device over a UART, then polled the gyroscope and sent the corresponding readings back out over the UART.

Development on this project has stopped temporarily, but may restart again soon. The repo for this project is here, as well as some snippets from the repo below for archival sake.



  • added a switch to display the temperature in F
  • getGyroPos() now returns a float
  • fixed some documentation
  • removed the debug statements for getGyroTemp()
  • made sure all references to spi_read() passed 0 as a argument
  • fixed the spi Cx algorithm to mirror the specs
  • made sure that the ADCR command was being used to pull the data
  • made sure that the CS was pulled low and high before and after every transaction
  • M /FRB/StructuralEngineeringDataAcquisitionBoard/src_GYRO_spibitbang/MLX90609.h