Daisychaining new Sparkfun RGB Backpack

If there is anyone here who is experienced with daisychain-ing the new RGB Matrix Backpack from Sparkfun - I would greatly appreciate any advice you could give me. I have run the Daisychain command on every matrix that I have, however I still get the same output.

With the code that I am using, each matrix should output a heart.

#define CHIPSELECT 10//ss
#define SPICLOCK 13//sck
#define DATAOUT 11//MOSI
#define DATAIN 12//MISO

int color = 1;
int count = 1;
long randNum;

int data =
{
0,0,0,0,0,0,0,0,
0,0,64,64,0,64,64,0,
0,64,0,0,64,0,0,64,
0,64,0,0,0,0,0,64,
0,0,64,0,0,0,64,0,
0,0,0,64,0,64,0,0,
0,0,0,0,64,0,0,0,
0,0,0,0,0,0,0,0
};

//========================================================================================
void setup()
{
byte clr;
pinMode(DATAOUT,OUTPUT);
pinMode(SPICLOCK,OUTPUT);
pinMode(CHIPSELECT,OUTPUT);
digitalWrite(CHIPSELECT,HIGH); //disable device

//SPI Bus setup
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1); //Enable SPI HW, Master Mode, divide clock by 16

daisyChain(4); // let the backpack know that it is in a chain of “x” matrix’s

}

//========================================================================================
void loop()
{
digitalWrite(CHIPSELECT,LOW); // enable the ChipSelect on the backpack
delayMicroseconds(500);

/*
if (count > 6)
count = 1;

for (int i=0;i<8;i++) for (int j=0;j<8;j++)
{
if (((i==0 | i==7) | (j==0 | j==7)) & count==1)
spi_transfer(64);
else if ((((i==1 | i==6) & (j!=0 & j!=7 )) | ((j==1 | j==6) & (i!=0 & i!=7))) & (count==2 | count==6))
spi_transfer(64);
else if ((((i==2 | i==5) & (j==2 | j==3 | j==4 | j==5)) | ((j==2 | j==5) & (i==2 | i==3 | i==4 | i==5))) & (count==3 | count==5))
spi_transfer(64);
else if ((((i==3 | i==4) & (j==3 | j==4 )) | ((j==3 | j==4) & (i==3 & i==4))) & count==4)
spi_transfer(64);
else
spi_transfer(0);
}

count++;

*/

for(int n=0;n<4;n++)
{
for (int x=0;x<64;x++) // Send pre-built array
{
spi_transfer(data);
}
}

digitalWrite(CHIPSELECT,HIGH); // disable the ChipSelect on the backpack
delayMicroseconds(500);
delay(1000);
}

//========================================================================================
char spi_transfer(volatile char data)
{
SPDR = data; // Start the transmission
while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission
{
};
}

//========================================================================================
void daisyChain(int matrix)
{
digitalWrite(CHIPSELECT,LOW); // enable the ChipSelect on the backpack
delayMicroseconds(500);

spi_transfer(’%’);
spi_transfer(matrix);

digitalWrite(CHIPSELECT,HIGH); // disable the ChipSelect on the backpack
delayMicroseconds(500);
}

However, this is the output I get.

[ch9830]