Yes - neither I2C or SPI slave is implemented because you need to have very fast, guaranteed response times to do it properly (which is almost impossible with JS).
However, Serial is a really good option. Set the TX pin of each slave to pinMode(TX, 'af_opendrain'), then connect all the boards together and have a pullup resistor on the slave TX (master RX) line.
You can make your own addressing system, but actually it is possible to use Espruino's built-in console. For instance:
Connect all slave B6 together, with a 4.7k pullup resistor to 3.3v, and to the master B7
Connect all slave B7 together, to master B6
Slaves
pinMode(B6, 'af_opendrain');
var ID = "slave1"; // or whatever
function myFunction() {
}
function onInit() {
echo(0);
}
Master
function cmdOnSlave(slave, cmd) {
Serial1.println("if(ID=='"+slave+"')"+cmd+";");
}
cmdOnSlave("slave1", "myFunction(1,2,3)");
cmdOnSlave("slave2", "digitalWrite(LED1,1)");
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Yes - neither I2C or SPI slave is implemented because you need to have very fast, guaranteed response times to do it properly (which is almost impossible with JS).
However, Serial is a really good option. Set the TX pin of each slave to
pinMode(TX, 'af_opendrain')
, then connect all the boards together and have a pullup resistor on the slave TX (master RX) line.You can make your own addressing system, but actually it is possible to use Espruino's built-in console. For instance:
Slaves
Master