i2cscan in bonescript

I’m trying to detect i2c devices on /dev/i2c-2.
I have a MCP23017 connected to i2c2 (pins 19 & 20) with address set to 0x00. i2cdetect -r 1 finds it as expected. I can fire outputs/read inputs via another script, so it is working properly.

I’ve modified the ‘test-i2c’ from github as follows:

`
var b = require(‘bonescript’);
var port = ‘/dev/i2c-2’;

b.i2cOpen(port);
b.i2cScan(port, onScan);

function onScan(err, data) {
console.log('scan = ’ + JSON.stringify(arguments));
}
`

If I run it using ‘/dev/i2c-0’, I get the same output as ‘test-i2c’ (data=[52,80])

scan = {“0”:{“err”:null,“data”:[52,80],“event”:“callback”}}
scan = {“0”:{“event”:“return”,“return”:[
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,52,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
80,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1]}}

If I run on /dev/i2c-1 or /dev/i2c-2, I get an empty array in data.

scan = {“0”:{“err”:null,“data”:[],“event”:“callback”}}
scan = {“0”:{“event”:“return”,“return”:[
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1]}}

So far, I haven’t gotten node-i2c to install/function correctly to try wire.scan from that (which bonescript says it uses) I get weird errors that I haven’t chased down yet.

Any ideas? The only thing google brings up when searching is an IRC log that mentions ‘empty array returned’ from 2012…

mcp address is 0x20, rather than 0x00 (typo in 2nd sentence)