mpu 6000 on SPI 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: http://diydrones.com/forum/topics/find-here-working-arduino-sketch-for-mpu-6000-arduimu-v3-using?commentId=705844%3AComment%3A1463571 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. I have another sketch affected by a big drift or deriva, so values change a lot and are very unstable, but it tells me that the spi communication works correctly.... :astonished:

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

where you can find a tutorial for the construction of a segway?