When I upload the code I sometimes get the error... Why does this happen? My Pucks are on 1v88
Because your Pucks are on 1v88? Try 1v92! There are a huge amount of issues (including the lack of decent error messages) that have been fixed since the release.
When I try to send a Eddystone broadcast command using this method e.g. require("ble_eddystone").advertise("goo.gl/B3J0Oc"); I am unable to detect the Eddystone broadcast
Puck.js won't advertise until you disconnect BLE from the device. I think it's a pretty standard BLE thing.
Reconnection should still be possible while broadcasting Eddystone - I just tried it here. Best to try again when 1v92 is installed though as it might have been an issue with 1v88.
is there an efficient way to ... make the second Puck search for other Pucks nearby
There's nothing built in, but why not pre-load each Puck with a function that does the recursive send. For example if you can it exec then you can just send the command "exec(\"digitalPulse(LED3,1,1000)\\n\")\n".
You'd need to be a bit clever though - you don't want Puck A sending a command to Puck B, but Puck B then sending it back to Puck A. I guess you'd want a 'transaction ID' sent along with the command so Pucks knew to ignore a command if they'd seen it before.
What is the maximum command length that the require("ble_simple_uart").write() function supports?
There is no maximum length - it's just what will fit in RAM. The longer it is the longer it'll take to send though!
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.
Looks like a nice idea!
Because your Pucks are on 1v88? Try 1v92! There are a huge amount of issues (including the lack of decent error messages) that have been fixed since the release.
Puck.js won't advertise until you disconnect BLE from the device. I think it's a pretty standard BLE thing.
Reconnection should still be possible while broadcasting Eddystone - I just tried it here. Best to try again when 1v92 is installed though as it might have been an issue with 1v88.
There's nothing built in, but why not pre-load each Puck with a function that does the recursive send. For example if you can it
exec
then you can just send the command"exec(\"digitalPulse(LED3,1,1000)\\n\")\n"
.You'd need to be a bit clever though - you don't want Puck A sending a command to Puck B, but Puck B then sending it back to Puck A. I guess you'd want a 'transaction ID' sent along with the command so Pucks knew to ignore a command if they'd seen it before.
There is no maximum length - it's just what will fit in RAM. The longer it is the longer it'll take to send though!