ITG-3200/5 not responding

I can't get the numbers to match the action of rotating it by hand. It's just a bunch of small numbers + and - less than 10, no matter how I rotate it. I have a 9DOF board. I've only connected 4 wires to Uno. What about Vcc? What about pullup resistors? The other 2 chips work fine over I2C.

// ***********************************************************
// *******   ITG3205 Example Firmware by FLYTRON.COM    ******
// ***  Designed and Coded by Melih Karakelle on 2011      ***
// **       This Source code licensed under GPL             **
// ***********************************************************

// Latest Code Update : 2012-01-06
// Supported Hardware : ITG3205 Breaout board (www.flytron.com)
// For Questions      : http://forum.flytron.com/


#include <Wire.h>


int GyroX,GyroY,GyroZ,GyroTemp;  //was float

int g_offx = 0;
int g_offy = 0;
int g_offz = 0;

#define ITG3200_Address 0x68

void setup()
{
  pinMode(13, OUTPUT);  
  Wire.begin(); 
  Serial.begin(9600);
  delay(100);
  initGyro();
  delay(100);
  GyroCalibrate();
  delay(100);
 
}

int cnt=0;
void loop()
{
   digitalWrite(13, LOW);
   delay(50);
   digitalWrite(13, HIGH);
  
   GyroRead();
   // Data to Degree conversation
   //Serial.print("Gyro(degree/s): ");
   //Serial.print(GyroX / 14.375);Serial.print(", ");
   //Serial.print(GyroY / 14.375);Serial.print(", ");
   //Serial.println(GyroZ / 14.375);
   //Serial.print("Temperature: ");Serial.println(35+((GyroTemp+13200) / 280)) ;
   Serial.print(GyroZ/10);Serial.write(32);
   if(++cnt%20==0)Serial.write(10);
   delay(200);
  

}



// **************************
// I2C Gyroscope ITG3200 
// **************************
void initGyro() {
   Wire.beginTransmission(ITG3200_Address); 
   Wire.send(0x3E);  
   Wire.send(0x00);   
   Wire.endTransmission(); 
   
   Wire.beginTransmission(ITG3200_Address); 
   Wire.send(0x15);  
   Wire.send(0x07);   
   Wire.endTransmission(); 
   
   Wire.beginTransmission(ITG3200_Address); 
   Wire.send(0x16);  
   Wire.send(0x1E);   // +/- 2000 dgrs/sec, 1KHz, 1E, 19
   Wire.endTransmission(); 
   
   Wire.beginTransmission(ITG3200_Address); 
   Wire.send(0x17);  
   Wire.send(0x00);   
   Wire.endTransmission(); 
   
   
}

void GyroCalibrate(){

 int tmpx = 0;
 int tmpy = 0;
 int tmpz = 0; 

 g_offx = 0;
 g_offy = 0;
 g_offz = 0;
 
 for (char i = 0;i<10;i++)
    {
    delay(10);  
    GyroRead();
    tmpx += GyroX;
    tmpy += GyroY;
    tmpz += GyroZ; 
    }  
 g_offx = tmpx/10;
 g_offy = tmpy/10;
 g_offz = tmpz/10;
 
 
  
}


void GyroRead() {
  Wire.beginTransmission(ITG3200_Address); 
  Wire.send(0x1B);       
  Wire.endTransmission(); 
  
  Wire.beginTransmission(ITG3200_Address); 
  Wire.requestFrom(ITG3200_Address, 8);    // request 8 bytes from ITG3200
  
  int i = 0;
  byte buff[8];
  while(Wire.available())    
  { 
    buff[i] = Wire.receive(); 
    i++;
  }
  Wire.endTransmission(); 
    
  GyroX = ((buff[4] << 8) | buff[5]) - g_offx;
  GyroY = ((buff[2] << 8) | buff[3]) - g_offy;
  GyroZ = ((buff[6] << 8) | buff[7]) - g_offz;
  GyroTemp = (buff[0] << 8) | buff[1]; // temperature 
}

Seems like there's a delay. When I rotate the board the numbers sometimes respond a minute later?
I deleted my delay, but there was already delay(50) in loop. Can GyroRead() get behind?
Why are the numbers printed so slowly without delay(50)?
The chip is initialized at 1khz?
What does that mean?

I think it was working! With a shorter delay than 50.

But now I'm only getting 0,0,0 and Temp 82. I didn't think I changed anything. I did not change the hardware or wiring. So I went back to the original Sketch I downloaded. There were many values less than 10 every time I ran it. Now all 0,0,0 for x,y,z.

Both the other 2 chips on the board still work. I didn't touch or bump any of the wires on the board, they are secure. The same 4 wires are used for I2C for all 3 chips. So there were no shorts. The Sketch is the same. How can I "Reset" the ITB-3205 chip???

http://www.ebay.com/itm/Nine-axis-degree-of-freedom-IMU-sensor-ITG3200-ITG3205-ADXL345-HMC5883L-Module?item=330708102771&cmd=ViewItem&_trksid=p5197.m7&_trkparms=algo%3DLVI%26itu%3DUCI%26otn%3D4%26po%3DLVI%26ps%3D63%26clkid%3D7631651168844156063

I don't know what happened, it started working again, more than just 0,0,0.

Another clue for the case of the lazy gyro: When I tap the gyro board, the numbers respond instantly from 2 to 50.
Especially X. Regardless of the delay 5-50. But not when I turn it in any direction. How do I properly test this code?