Seneye Reef Sensor Data Transfer
This week, I started out with no code and the task of interfacing with the Seneye reef sensor. After flashing a Raspberry Pi 3 and installing the Raspbian OS, downloading and installing Java, Maven, and Eclipse, I began developing code to send and read data packets over a USB connection before finding out that Seneye's water quality sensor uses human interface device (HID) protocols normally used for joysticks, keyboards, and mouses*. Using HID protocols, I was able to connect to the sensor using my program, although I have to run eclipse with sudo (superuser) permissions as most operating systems automatically connect with human interface devices, so detaching their drivers and reattaching them to my program requires root authority.
After writing code for sending data to and receiving data from human interface devices, I started work on code to encode and decipher messages based on Seneye's own API reference guide. I found their API confusing and, in some cases, factually inaccurate, but after a few tries, I was able to correctly package data and communicate with the sensor. Next week, I'll work on implementing this code in a program which meets project specifications.
*I found out while writing this post that the word 'mouse', used to refer to a human interface device (computer mouse), is apparently an acronym for 'manually-operated user-select equipment'.