Yep I added some serial debug to tell me if things fail...Take a look, maybe my error handling has an error
Current state of code:
#include <Wire.h>
int device_address = 17;
int seekPin = 12;
int seekPinState = 0;
void setup(){
pinMode (seekPin,INPUT);Â
Â
Wire.begin();
Serial.begin(9600);
getVolume();
maxVolume();
getVolume();
}
void loop(){
Serial.print("Device addres is: ");
Serial.println(device_address);
seekPinState = digitalRead(seekPin);
if (seekPinState == 1) {
 Serial.println("High!");
 }
getVolume();
delay(5000);
}
void maxVolume(){
Serial.println("Setting Volume");
Wire.beginTransmission(device_address);
Wire.write(5);
byte val_hi = 0x88;Â // 10001000
byte val_lo = 0xA8;Â // 10101000
Wire.write(val_hi); // hi byte
Wire.write(val_lo); // lo byteÂ
Wire.endTransmission();
if (Wire.endTransmission() != 0)
 {
 Serial.println("Error on TX"); // error message
 return;
 }
}
void getVolume(){
Wire.beginTransmission(device_address);
Wire.write(5);
Wire.endTransmission();
Wire.requestFrom(device_address, 2);
Wire.endTransmission();
if (Wire.requestFrom(device_address, 2) != 2)
 {
 Serial.println("Error in RX"); //error message
 return;
 }
Â
byte byte1 = Wire.read();
byte byte2 = Wire.read();
Serial.print("The currnet volume setting is: ");
Serial.print(byte1, BIN);
Serial.print(":");
Serial.println(byte2, BIN);
}