Does anyone know if this is possible? It's just an i2c device right? I mean you would have to cut the cable and make it so you could plug into the pins on the Arduino but you should just be able to use the wire library and say something like.
Wire.beginTransmission(0x10);
the NXT hardware developers kit tells you what pins are which http://mindstorms.lego.com/en-us/support/files/default.aspx
Thanks
EDIT. Turns out this is very possible. The main problem was that HiTechnic says the address is 0x10 and it is actually 0x08 but here is a short sketch that reads and prints some into about the device, i.e. the manufacturer and version.
#include <Wire.h>
#define ADDRESS 0x08
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
readCharData(0, 7);
Serial.println();
readCharData(8, 8);
Serial.println();
readCharData(16, 8);
Serial.println();
Serial.println("-----------------------------");
delay(1000);
}
void readCharData(int startAddress, int bytesToRead)
{
Wire.beginTransmission(ADDRESS);
Wire.write(startAddress);
Wire.endTransmission();
Wire.requestFrom(ADDRESS, bytesToRead);
while(Wire.available())
{
char c = Wire.read();
Serial.print(c);
}
}