Using Jolt as a Bluetooth long range relay device #7785
-
Having got the Bangle js2 to act as a peripheral to the Play-Cricket Scorer app, running on an iPad (this is a constraint), I've now tested the range from the iPad to the Bangle and it is appalling! The iPad (on BT 4.2) drops the connection at about 15m line-of-sight. I didn't imagine it would be that useless. So now I am looking at options to extend that range. I like the idea of using a Pixl to act as a peripheral mini scoreboard over 1mbps phy but then replaying the characteristic to the Bangle js2 over coded phy. Would that work? The data is tiny, typically a string of 8-10 characters, and occur every 30 seconds or so, in a burst of 3-5 messages 100ms or more apart. Could I just advertise this data on coded phy without the Bangle needing to actually connect? Or could the Pixl connect to both central and peripheral devices to relay messages? |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 42 replies
-
Hi! Unfortunately Pixl.js uses the nRF52832 which can't do Bluetooth Long Range. You could use another Bangle.js, or a Jolt.js (but that has no display). It would be pretty trivial to hook a Jolt.js up to a display (even potentially a big 7 segment one), but it's not an 'out of the box' solution. Assuming you did that though:
I'd imagine so - you could probably scan on coded phy and then have the 'relay' device advertise itself but on normal Phy?
I think it could do that too (holding central+periph at the same time isn't a problem), although while Pixl/Jolt/Bangle/etc can all do that only Jolt/bangle currently do the long range. |
Beta Was this translation helpful? Give feedback.
-
And BTW if I let it connect over coded phy and then run NRF.updateConnection({"phy":"auto"}) on the peripheral it will switch to 2mbps for me, here is output on the central side, 7 is 1+2+4=all requested, 2 is the result >gatt.phy_req
=[ 7, 7 ]
>gatt.phy_res
=[ 0, 2, 2 ] |
Beta Was this translation helpful? Give feedback.
-
Looking outside of Nordic, there seems to be a couple of things which are implied by coded phy "long range at both 500 kbps and 125 kbps speeds" and "receive sensitivity of the coded PHY at -101 dBm (500 kbps) and -106 dBm (125 kbps)" [https://community.infineon.com/t5/Blogs/Long-Range-Communication-with-Bluetooth-Really/ba-p/436291#.] I'll start recording RSSI scans when testing, and see whether there is a difference between the cutoff behaviour on coded vs 1mbps, and maybe 2mbps |
Beta Was this translation helpful? Give feedback.
-
I am using this thread as it has a lot on nice info, I hope it is ok, I am trying to test the coded range, and I am failing miserably. I have 4 devices, a Bangle.js 2, a Rock, a Magic3, and a nano. the Bangle and the Magic3 are on 2v27, the nano and the Rock are on 2v27.36. The Bangle and the Magic3 are softdevice 6.0.0, the rock and the nano are 6.1.1 I use the Rock to scan for phy:"coded", but this step make no difference, I can use the nano or the Bangle with the same results, using this:
No script other a watchdog is running on the Magic/Rock, nothing is running on the nano, on the bangle I use the clean boot option. I use this line to enable advertising on coded on the devices that act as peripherals:
what works: As soon as I disconnect, the device is lost, I cannot see it on the Rock no more. I have E.setFlags({onErrorSave:true});, and in the error fiile I get an ERR 0x13. Only the Bangle.js2 works as expected, when I disconnect the IDE from the Bangle when using it as a peripheral, I can still see if from the Rock. The others, I cannot, they give the ERR 0x13 and they are not visible any more. is there any hint I could use? |
Beta Was this translation helpful? Give feedback.
Hi! Unfortunately Pixl.js uses the nRF52832 which can't do Bluetooth Long Range. You could use another Bangle.js, or a Jolt.js (but that has no display).
It would be pretty trivial to hook a Jolt.js up to a display (even potentially a big 7 segment one), but it's not an 'out of the box' solution. Assuming you did that though:
I'd imagine so - you could probably scan on coded phy and then have the 'relay' device advertise itself but on normal Phy?
I think it could do that too (holding central+periph at the same…