Jean-Philippe_Rey
Member since Apr 2015 • Last active Apr 2024Most recent activity
-
- 12 comments
- 185 views
-
-
Thank you @fanoush for your help. I will definitely try to play with interval and window settings to see if I can increase the packet RX rate, however for my application, trying to synchronize with beacons's advertising interval will probably be too complicated for now.
For those who are interested, after some endurance tests (1 week) with continuous scan, the packet RX rate was around 47%, with a beacon advertising sequentially in all 3 channels every 2 seconds.
If I can increase this number thanks to interval and window settings, I will post result here.What I don't understand is that the raspberry Pi I am using for Home Assistant, achieves nearly 100% RX rate for Espruino devices advertising with BTHome. I guess the BLE advertising mechanism should be reliable enough to achieve 80%+ RX rate at least, maybe something is wrong with the way I am using setScan.
-
-
I actually managed to compile 2v21.84 for NRF52840DK, however I don't really know how to benefit from window/interval in
NRF.setScan
. Is there any way of consulting Espruino API reference (in a human readable manner) for a specific commit? As far as I understand, most of it is generated from comments in source code. -
I'm in the process of getting the first 1500 of https://www.espruino.com/Jolt.js ready
Is there any "TAKE MY MONEY" waiting list in which I can buy a seat?
-
-
-
but recently at least the scan window and interval became configurable if that helps a bit
Seems at least promising, I will have a try once available as a feature. As far as I understand it will be pushed in 2v22...
Well those three channels is how BLE Advertising works, there is a reason for advertising on multiple channels. You risk missing some packets when your selected channel becomes temporarily unusable due to noise.
Well that's for sure, it is generally not a good idea to limit advertising on a single channel only, however in our application we will use specific beacons in outdoor, countryside context, therefore 2.4GHz interference will probably be very limited.
Thank you for your response and also for the work you did at providing scan window and interval to Espruino (not mentioning coded phy, BTW)
-
For a beacon ranging application, we use function NRF.setScan() to scan for beacons (TX every 1 second), with some appropriate filtering.
We experienced some particular behaviour: Scanned packets are not equally spread over time. For some couple of seconds, every beacon advertising packet is beeing received, then nothing for the next few seconds, then again almost every packet received and so on. It seems like a stroboscopic effect, due to scanning window (https://academy.nordicsemi.com/wp-contenĀt/uploads/2023/03/blefund_less2_adv_procĀess-1024x576.png).
We want to try scanning on only 1 channel, thus avoiding dead time switching between channels 37, 38 and 39, but it seems that setScan method doesn't allow for such parameter.
How complex would it be to modify setScan method to force receiving channel(s)? Would it make sense to add it as a feature to the official Espruino build?
What I like:
What I do:
80% Hardware
15% Firmware
5%Software
Linkedin: linkedin.com/in/jprey
Twitter: https://twitter.com/yerpj