  display.display();
  //Serial.print(millis());
  //Serial.print(" ");
- Serial.print(adc_copy);
+ //Serial.print(adc_copy);
  //  Serial.print("ADC_SAMPLE_WINDOW_PWM_DUTY");
  // Serial.println(ADC_SAMPLE_WINDOW_PWM_DUTY);
  //Serial.print(" ");

 
 //convert to degrees C
 temperature_copy=ADS1118_INT_TEMP_C(temperature_copy);
 
 
 //Serial.print(temperature_copy);
 //Serial.print(" ");
 //Serial.println(adc_copy);


///////////////
   display.clearDisplay();

//Global Objects
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);  //TODO: look into this reset pin. The LCD i'm using does not have a reset pin, just PWR,GND,SDA,SCL
Encoder myEnc(ENC_A, ENC_B);
DellPSU dell(DELL_PSU);   //specify the desired Arduino pin number


//Serial comm /tuning unions/structs
union controller_packet_converter{
  struct {
      byte  start_of_packet; //always 0xBA. It was arbitrarily chosen.
      byte  automatic;
      float setpoint;
      float input;
      float output;
      float kP;
      float kI;
      float kD;
      float ITerm;
  } status;
  byte asBytes[sizeof(status)]; 
};

union host_packet_converter{
  struct {
      byte start_of_packet; //this should always be 0xAB. It was arbitrarily chosen
      byte automatic;       //0=manual Auto =1
      float setpoint;
      float input;
      float output;
      float kP;
      float kI;
      float kD;
  } param;
  byte asBytes[sizeof(param)];
};

host_packet_converter host_packet;
controller_packet_converter controller_packet;


volatile double Setpoint, Input, Output;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,kP,kI,kD, DIRECT); //TODO: map this properly

