mpu 6000 (acc + gyro) reading data error

Hi everyone,
I'm trying to make a sort of segway using arduino uno v3 and two servos, but this is another story...
Before that I have to recieve correct data from inertial platform (accel + gyros) mpu6000 bought on the web from drotek.it
I want to show you what I get from debug code, so I spun up the example, but get so far as:

############# MPU-6000 Data Acquisition #############
Initializing SPI Protocol...
...SPI Protocol initializing done.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Initializing Digital Motion Processor (DMP)...
Resetting MPU6000...
SPI (/CS40) reading 1 byte from register 0x6B... 0xFF (done)
SPI (/CS40) writing 1 byte to register 0x6B... 0xFF (done)
bit_7 set to 1
Disabling sleep mode...
SPI (/CS40) reading 1 byte from register 0x6B... 0xFF (done)
SPI (/CS40) writing 1 byte to register 0x6B... 0xBF (done)
bit_6 set to 0
Selecting user bank 16...
SPI (/CS40) writing 1 byte to register 0x6D... 0x70 (done)
Selecting memory byte 6...
SPI (/CS40) writing 1 byte to register 0x6E... 0x06 (done)
Checking hardware revision...
Revision @ user[16][6] = FF
Resetting memory bank selection to 0...
SPI (/CS40) writing 1 byte to register 0x6D... 0x00 (done)
Reading OTP bank valid flag...
SPI (/CS40) reading 1 byte from register 0x00... 0xFF (done)
bit_0 = 1
OTP bank is valid!
Reading gyro offset TC values...
SPI (/CS40) reading 1 byte from register 0x01... 0xFF (done)
SPI (/CS40) reading 1 byte from register 0x02... 0xFF (done)
SPI (/CS40) reading 1 byte from register 0x03... 0xFF (done)
X gyro offset = 63
Y gyro offset = 63
Z gyro offset = 63
########################### Writing DMP code to MPU memory banks (1929 bytes)
Writing DMP memory.......... @@@ write bank 0
SPI (/CS40) writing 1 byte to register 0x6D... 0x00 (done)
SPI (/CS40) writing 1 byte to register 0x6E... 0x00 (done)

...

...

@@@ write bank 1
SPI (/CS40) writing 1 byte to register 0x6D... 0x01 (done)
SPI (/CS40) writing 1 byte to register 0x6E... 0x00 (done)

...

...

>> read bank 6
SPI (/CS40) writing 1 byte to register 0x6D... 0x06 (done)
SPI (/CS40) writing 1 byte to register 0x6E... 0x00 (done)
$$ dmpMemory: byte verification error
FF
$$ dmpMemory: byte verification error
FF
$$ dmpMemory: byte verification error
FF

and so on, with a huge list of verification errors.

There is no, or no correct, SPI communication between Arduino processor and the MPU-6000. The code first writes a lot of values over SPI to the MPU-6000 ("writing byte to register (done)" - lines), then starts reading the values back from the MPU and verifies them. The "$$$ dmpMemory: byte verification error" point to a verification failure, so something went wrong in either writing or reading the values to/from the MPU, or both.

My code is too long to get it posted, so I posted the url from which I took the code originally:

I didn't touch the original part on the dmp memory bank initialization and configuration, but there is some sort of error that make me unable to receive data.

Any kind of thoughts on this would be most appreciated, many thanks.

You problem is very confusing.

First, you need to check that the spi communication to the device is working.

One easy way to do this, is to try reading one of the status registers of the device. Or the register with the known "who-am-I" code. If you cannot read this, then you need to check the spi is working.

Try reading the acceleration and gyro registers. Don't try uploading any microcode to the device until you can read the basic data first.

I am able to read the registers you mentioned because I have another program that work on the spi bus but it's affected by a big drift problem, so data are very unstable. BUT it tells me that the SPI communication works correctly.
Do you know why I always find: $$$dmpMemory: byte verification error ?????