I’ve decided to make my work on the Sharkduino project – from now to December 2017, anyway – my Computer Science honors thesis under the sage tutelage of Dr. Gang Zhou, an associate professor at the college of William and Mary. Dr. Zhou has experience in embedded programming, the Internet of Things, and body sensor networks, so he’s a natural fit for our work. I’m glad to have him on the team.
Winter break was long and boring, but the fun parts of it were spent working on William’s additions to Arduino v2, specifically the DS1339 real-time clock and FXAS21002C gyroscope. The former had a comprehensive but somewhat bulky library already available, so integration was fairly simple – strip out the old code and throw the new code in. The latter was more complicated.
We’re mainly using the FXAS to reduce power consumption, as the gyroscope uses more power than any other sensor. However, the FXAS also has an internal FIFO buffer to store data, just like the previous L3GD20 gyroscope. I’d already implemented the L3GD20’s FIFO functionality into an existing Adafruit library, so I felt confident that I could do it again. The problem was that there was no official Arduino code for the FXAS; the only library we could find turned out to have significant errors. Ultimately, I ended up writing my own library, which was a fun and elucidating experience. I plan to publish it on GitHub once I test it more.
I’ve got a few minor things on the to-do list, but my immediate future can go down one of two paths: I can work on a new accelerometer with a FIFO buffer similar to the gyroscope’s, or work on selectively disabling the gyroscope during periods of low activity. Either way, I’ve got an exciting semester ahead of me.