-
Hmm. I think I've got somewhere.
I did a 'Reset Settings' in the settings. Made no difference. The HID service still showed (no access) and the Web IDE etc failed.
But then I did a 'reboot without loading any software', and, now, the Bluetooth LE Explorer doesn't show the HID service at all.
AND, now, the Web IDE and app loader work fine... Including showing the correct debug output in the JS console.
I did try doing the 'Rebooting without loading any software' previously, and that made no difference. Apparently resetting the settings first made a difference.
Now, I can reboot it normally (loading all the default apps) and it still works fine.
So, that's a result, but very odd. The settings were all what I thought they should be, and look to be the same now. Maybe there are some hidden settings which were wrong, which were fixed by the 'reset settings' and then a reboot.
Not knowing the details of how things work, my guess is it may be that the unavailable HID service was upsetting the Windows Chrome Web BT, but the Android Chrome didn't care (your Android phone doesn't support a mouse, for instance), so didn't get upset by it. So, that's why Android worked, but Windows didn't.
-
Gordon mentioned in post #28 about turning off HID in the Bangle. Can we confirm?
ref AccessDenied error within characteristicI've tried it with HID turned on and off in the Bangle. Both are the same in the Web IDE (and both give the 'Access Denied' for the HID service in the Bluetooth LE Explorer)
Oddly you don't have the HID service in yours at all. Maybe the 'access denied' in mine is what's upsetting the Web IDE?
-
note that I tried for ten minutes to get that BLE tool to 'Refresh' or 'Pair' with my Bangle, with no success
The UI is a bit confusing.
Ignore the 'Pair' button. Click the square with the tablet/phone screen in it. Took me a few random clicks to find it :-) That square is a button, even though it doesn't look like it
Note that (I think) you have to pair the Bangle with Windows first, using the standard Windows Bluetooth UI
also note that the first .png in post #30 now is visible along with the additional image that was uploaded as an edit to that post
Yeah, I was trying random things - they were all showing for me, but not, apparently, for you, so I didn't know what, if anything, would work ;-)
-
'enumerate services' we should compare.
Can you not see the image I uploaded under "seems to be able to enumerate services:"? It looks fine to me
Try this link instead?
https://www.dropbox.com/s/gl2tvwez1xhliyg/2020-03-26_15-46-57.png
-
Hmm. OK, so I found a Windows App called Bluetooth LE Explorer in the App Store.
If I pair the Bangle to my Windows, and use Bluetooth LE Explorer to connect to the Bangle, everything looks fine (as far as I can tell), and it seems to be able to enumerate services:
So, given that that's with the same laptop, same Windows, same Bangle, same Bluetooth adapter, that would tend to suggest that Chrome (or the Javascript) is the problem factor here.
I don't suppose anyone for whom the web IDE works fine could see if Bluetooth LE Explorer gives the same services for their Bangle?
(https://www.microsoft.com/store/productId/9N0ZTKF1QD98)Eg, I don't know if the 'AccessDenied' error for the HID service is relevant or not
-
parasquid
This might be a long shot, but have you tried a different OS?Not yet, but I may give that a go if I get time (I'm meant to be working ;-) )
AkosLukacsPatreon
What windows version do you have?Windows 10, version 1909 64bit
Could you try unpairing and disabling
Bluetooth on OS level?I'm unpaired from the Bangle. I'm not sure about disabling Bluetooth in Windows - won't that stop Web Bluetooth from working as well?
Long shot, but do you have any program, that might interfere? Anything that might use Bluetooth, or even serial (might force itself on Bluetooth devices to look for characteristics it want to use)
I have lots of programs, but I don't know of any that would interfere. I haven't got any specifically-Bluetooth programs running. The thing is that it does seem to be limited to interactions between my PC and the Bangle. Other Bluetooth devices work fine (at least as far as enumerating services using chrome://bluetooth-internals goes)
-
Just as a check, in windows's "Bluetooth & other devices" settings, if you try the "Add Bluetooth or other device", do you see your Bangle?
Yes. That can see it and pair to it. Web Bluetooth can see it and 'connect', but not get a list of services from it.
My Android phone (Galaxy S8) can see it, connect, and get a list of services from it.
-
Maybe you can give this a try: https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop
Unfortunately, I couldn't get that to do anything at all. it came up with an error straight away. I couldn't even get it to scan for devices.
I'm going to see if I can pinch a child's laptop and try from that...
OK. So I nabbed my daughter's laptop (with an Intel Wireless-AC 7265 adapter- which supports Bluetooth v4.2). That had exactly the same problem as mine with the Bangle. (Windows 10, latest Chrome)
So, to me, that suggests that either there's a weird problem with my Bangle which lets it still work with an Android, or there's an incompatibility between Intel Bluetooth adapters and the Bangle. I'm guessing that if it was the latter, then there'd be a lot more reports of problems.
-
It sounds a little like your computer is never getting to the puck.js:362 Got service line - which is where the connected device is scanned for the 'services' is offers
Yep. Tried that, got to the ' Connected' and nothing else.
If I go to chrome://bluetooth-internals, go to 'Devices' and click 'Start Scan' it finds 'Bangle.js 03ed'. Then if I click 'Inspect' it shows stuff, and then sits with a loading spinner in the 'Services' section. So, something does seem to be wrong with it scanning for services.
I wish there was some other software I could use on my PC to test the connection to the watch -just to determine whether the problem is with the Bluetooth on my laptop or with Chrome on my laptop.
Hmm - if I go to chrome://bluetooth-internals and "inspect" my Fitbit Charge, then Chrome lists some Services to me (I don't know what they mean, but at least it's doing it). So Chrome seems to be working in general with Web Bluetooth
If I go to chrome://bluetooth-internals on my phone, and inspect the Bangle, then that lists services.
It doesn't look as if it's the Bangle, because my phone seems to work OK with it, but it doesn't seem to be my laptop/Chrome either, because that works with other things. So, I'm baffled.
I'm going to see if I can pinch a child's laptop and try from that...
(PS - not a random child on the street, one of my children :-) )
-
Is it possible you paired with the OS first? The way Web Bluetooth works it actually works a lot better if you don't pair first.
I didn't originally, and Web Bluetooth didn't work. Then I tried pairing it with the OS to see if it could pair (it could), and if it made the Web Bluetooth work (it didn't - Web Bluetooth couldn't even see the Bangle then). Then I unpaired it from the OS, and the Web Bluetooth still didn't work (but could see the Bangle again)
I'd expect that a Bluetooth 5.1 adaptor would be fine, but it does sound like there's
something odd going on there. Have you got the latest drivers installed for it?I upgraded the drivers to see if that made any difference - it didn't.
I downloaded Opera (which apparently supports Web Bluetooth as well) to see if I could get it to work with that (in case it was a Chrome problem), but I must be doing something wrong with that as well, because that just comes up with an error when I press 'Connect' - it doesn't even get as far as Chrome does. I don't seem to be the only person who has problems with Opera and Web Bluetooth, but I couldn't find a solution which worked, so I gave up on that.
I'm totally baffled. I'm an IT person, and a programmer, but I don't have much experience with Bluetooth except as a user, so I don't know where to start debugging... If it was an Ethernet/IP connection problem, I'd be in there with Wireshark, but I don't know if there's an equivalent for Bluetooth.
Is there anything I can upload to the Bangle to tell me more information about the Bluetooth connection which may help diagnose this? I seem to be able to connect to it fine from my Android phone, so I should be able to upload an app from that even if I can't really do development on it.
Would downgrading the firmware to 2v04 (if I can figure out how) be worth trying?
-
-
Hmm, OK. It looks like it may be something to do with my laptop or Chrome on my laptop. I tried Chrome on my Android phone, and that worked straight away.
Obviously, I don't really want to have to develop on my phone... So, what could be wrong on my laptop? Apparently, the Bluetooth adapter is v5.1 - I assume that's backwards compatible with Bluetooth v4. It's an Intel Wireless Bluetooth Wi-Fi 6 AX201 adapter.
As I say, my laptop connects to my phone, mouse, keyboard, gamepad etc all without any problems.
-
Do you have something like adBlock/etc running on your web browser?
No. I've tried disabling all my Chrome plugins and restarting Chrome - no difference.
Also, it might be worth going to http://espruino.com/ide and seeing if you can communicate with the watch in any way.
That just sits there saying 'Connecting'
... also, try: https://www.espruino.com/Bangle.js#resetting-without-loading-any-code
I've tried that - the same happens.
Could it be the Bluetooth in my laptop (a brand new MSI Prestige 14)? It seems to work OK for other things.
-
I got my Bangle yesterday, and I've totally failed to load anything onto it.
It starts up OK, shows the clock, lets me into the settings, etc, but if I go to banglejs.com/apps/ I can't do anything.
I click on Connect (Chrome on Windows 10). It says it's found the Bangle, so I 'pair' it and the button changes to 'Disconnect'. Then, nothing.
In 'My Apps' a loader image just spins continuously. If I try to upload an app, it just sits there.
The Chrome console shows :
puck.js:362 Device Name: Bangle.js 03ed
puck.js:362 Device ID: Pdexfc2Y7MKARuBL64IT+A==
puck.js:362 Connectedand that's it.
If I try to upload an app, it shows:
comms.js:14 uploadApp clock2x3.app.js, clock2x3.img, clock2x3.info
puck.js:362 Busy - adding Puck.write to queueThe watch firmware says it's 2v05. Commit 09aa0d84. Bootloader v0.09, Launcher v0.01, Settings v0.06
BLE is on. Programmable is on. Debug info is 'hide'.
I don't know if I'm stupidly missing an important step or if something is wrong?
finding the satellites should be a lot quicker the next time you restart it.
Inside, it will pick up fewer satellites, if any, because the radio signal is very weak, so it will get blocked easily. That will reduce its accuracy considerably.