   uint16_t receivedCount = 9;
   transmissionLength -= receivedCount;
   
-  uint64_t checksum = 0;
-  uint8_t buffer;
+  int64_t checksum = 0;
+  int8_t buffer;
   
   while(!EEPROM.isReady());
   

    #define SERIAL_BUFFER_SIZE 64
#endif

struct Frame {
  uint16_t transitionTime;
  uint16_t pauseTime;
  uint8_t colorStopCount;  

};

struct ColorStop {
  uint16_t ledIndex;
  uint8_t r;
  uint8_t g;
  uint8_t b;

};

Adafruit_NeoPixel* strip       = NULL;
struct Frame* currentFrame     = NULL;
struct ColorStop** colorStops = NULL;
uint8_t currentFrameIndex = 0;
uint8_t* startR;
uint8_t* startG;
uint8_t* startB;
uint8_t* stepR;
uint8_t* stepG;
uint8_t* stepB;
uint16_t stepsUntilNextFrame = 0;

void setup() {

  
  //frameAddress is now the address of the desired Frame
  //Read the values
  frame->transitionTime = EEPROM.readInt(frameAddress);
  frame->pauseTime =      EEPROM.readInt(frameAddress+2);
  frame->colorStopCount = EEPROM.read(frameAddress+4);  
  
  if(*colorStopsPointer == NULL) {
    struct ColorStop** array =  (struct ColorStop**) malloc(sizeof(struct ColorStop) * frame->colorStopCount);
    *colorStopsPointer = array;
  
  }  
  
  struct ColorStop** colorStops = *colorStopsPointer;
  
  //Load ColorStops
  for(i=0; i<frame->colorStopCount; i++) {
    colorStops[i] = (ColorStop*) malloc(sizeof(struct ColorStop));
    loadColorStop(i, frameAddress,  colorStops[i]);
       
  }
}

