hi there, it's possible the sensor can work with different speed I2C, but only send that data only in at one speed spec?? ...

Good question, I don't know. What I know is that an I2C EEPROM like the 24LC256, has an ~5 millisecond latency after a write. In this period the chip is not reachable (read or write). So different I2C devices can have artefacts, and when I extend this tool I hope to be able to handle them.FYI my EEPROM lib can be found - http://playground.arduino.cc/Main/LibraryForI2CEEPROM -

The scanner now only checks address reachability (sort of ping for I2C) as there are I2C devices that do not work on all speeds.For specific devices I want to add additional tests (EEPROM, RTC, DISPLAY, PCF8574, ...)

It can do just a single scan, and it gives output as shown in post above.A continuous scan, gives the same output with a one second delay in between. This is useful to patch/change address lines to.To stop the continuous scanning press q (quit).

Then there are three flags that modifies the behaviour.d: adds 5 millisecond delay between addresses. This is because some devices have a latency and will not react immediately. I'm not happy with this behaviour and it will change in next version.

p: imho the most useful flag, print complete list of addresses or only the ones found. Reduces the output to something the eye can follow.h: removes the header/footer from the output so only the lines of addresses responding will be shown. Works especially well in combination with p, and I have doubted for some time to combine the p and h flag.

The combination I use often is printFound, noHeader and continuous. It gives output like

One can see the number of columns has changed as I added additional speeds for I2C: 250 and 500 KHz, 2 speeds at which my RTC and EEPROM work quite well. I also tested 1000 KHz and got mixed results. The RTC did not work reliably at that speed.(I might try 800 KHz, also a perfect divider of 16 MHz.)

Although still work in progress, the tool already met some of its goals. First on my list is to get delay() behaviour right.

Krodal

I have added a link to your MultiSpeed I2C Scanner in http://playground.arduino.cc/Main/I2cScannerSee the "Interesting Links" section.But I don't like that link to reply 4.

robtillaart, could you give your Multispeed I2C Scanner it's own place and adjust that link in the i2c_scanner ?You could add it to the i2c_scanner page, but perhaps that is confusing for new users, that page is very simple now, and that is better for new users.Another option to edit your first post, and make that the main article and for your scanner.

I used your MultispeedScanner 0.1.03 for Test an I2C Circuit. It works fine with a Duemilanova, but if I use an Arduino Due (with levelshifter from 3.3V to 5V) I got no Answer from any I2C chip. The change for the Due I did is to comment out the "TWBR-Statement". I used IDE 1.5.6-R2.In this Postings you can find als some scope and small pieces from the a logic analyzer.http://forum.arduino.cc/index.php?topic=234999.msg1692208#msg1692208