-
Thanks! Yes, that's perfect. So the issue is that instead of sending:
GB({"t":"call","cmd":"incoming","name":"Test","number":"01234567890"})
Gadgetbridge is actually sending:
GB({"t":"call","cmd":"\u0131ncom\u0131ng","name":"Test","number":"Test"})
This is just all kinds of strange though - I just checked the Gadgetbridge source code and the code there looks ok. It gets the text
incoming
from an actual variable name in the CallSpec class, so it shouldn't be affected by translation. It's almost like your Gadgetbridge installation itself is corrupted.Which version of Gadgetbridge are you using? Is it the one from the Play Store? Or F-Droid? Or did you build it yourself?
-
Wow, thanks for sharing that! That's really interesting - I think your work on eucwatch was awesome, and it's a real shame others tried to cash in on it. It's 100% not your fault.
And of course someone selling a eucwatch for £75 -basically the same as we sell Bangle.js 2 for!
The first time I wrote in this board, it was to ask you to consider supporting EUC's ... it was not a surprise you dismissed it
I'm sorry my response seemed negative to you - I've tried to look back and the earliest mention I could find was in this thread where I seemed pretty positive about it?
From my point of view Bangle.js was meant for exactly this kind of thing - a platform where someone with a slightly niche use could develop something cool and useful and share it with like-minded people, so what you were doing seemed great, and could have been installable via https://banglejs.com/apps
But I think you felt that the Bangle.js was too expensive a watch to use for it? And so for me the question wasn't whether I want to support EUCs (I do/did!) but did I want to sell a smartwatch for half the price, which is something I can't really do because handling support/returns/etc just costs too much money for it to be worthwhile.
it now has UI elements for the buttons, a nice slider for changing values etc, I had it supporting "dual boot" in the bangle.js2
That sounds great - is it public at the moment?
If this is something that runs on Bangle.js, would you consider adding it to banglejs.com/apps ? I'm happy to help.
If there's really demand for Bangle.js 2 running the eucwatch software, I'd be very happy to offer a version in the shop where we preinstall eucwatch on the Bangle, sell it and then give you some of the profit? Although obviously if eucwatch is on the app store it's not going to be hard for others to do that (but we can always do referral fees).
I know you say it's not about the money, but at least for me, knowing that people use and value my software is a big motivation to keep me wanting to maintain and improve it.
-
I'm not quite sure I understand. So just to be clear:
- Pasting
GB({"t":"call","cmd":"incoming","name":"Test","number":"01234567890"})
via the Web IDE caused your watch to display an incoming call message? - Tapping
Debug
thenincoming call
in Gadgetbridge did not display an incoming call message?
If that's the case, please can you enable logging in Gadgetbridge, click the incoming call button, and then paste up the part of the log from around the time that you pressed the button (make sure it doesn't contain any personal info)
- Pasting
-
-
Yes, it also works great for me too.
So the fact it doesn't for you means that it'll be some configuration issue on your watch.
Please can you connect with the Web IDE on your PC, then on the left-hand side, paste in:
GB({"t":"call","cmd":"incoming","name":"Test","number":"01234567890"})
and then paste here what's written on the screen afterwards?
You could also enable logging in Gadgetbridge, click the
incoming call
button, and then paste up the part of the log from around the time that you pressed the button (make sure it doesn't contain any personal info) - but if we can track it down from what the Bangle says after manually pasting in the command, that would be easier -
TK78G looks really promising - it's good to see there are still some Nordic-based watches being produced, and the body temperature monitoring looks really interesting.
@yngv126399 @eanon - thank you, I really appreciate the support (@eanon thanks for the donation - I was pretty sure I sent you an email at the time?). Please feel free to post your progress with the watches on the forums though (and if we can pull changes back into the main Espruino repo without overcomplicating things I'm all for it - the increased MTU for @eanon was great) - increasingly I feel like any publicity is good publicity. It feels like there's a pretty clear case for Bangle.js alongside the others - if you can run the code on a bunch of watches it may work for some people or just be a bit of fun, but for an 'every day' watch in most cases right now Bangle.js wins out.
there were over one thousand installations of the eucwatch when I stopped the project
That's super impressive!
I remember the p22 changed some 5 revisions
Yes, that may have been Covid - but (and folks don't generally see/notice this luckily) Bangle.js 2 has changed slightly over time too (for instance the HRM and pressure sensors) so even when I'm in contact with the manufacturer and pushing them to keep things the same, they still sometimes have to make changes.
@andiohn I'm sorry this (and the Gadgetbridge post) seemed to turn into a bit of a negative discussion. Re-reading over the comments I don't feel like @fanoush is being rude or mean, but it can be hard to judge the intended tone of posts.
The drop shipping is a nice idea, and it is something I have approached companies about several times in the past, but it's been quite hard to convince companies as I don't really have huge sales. I really do want to hear new ideas, but I'm juggling a lot of different things and I don't think I can take on new stuff unless I feel confident in it. Sometimes it does happen though - I think Bangle.js came out of seeing folks on the forum talking about and playing with smart bands.
On the custom watch front, if you or anyone else fancies taking this on yourselves - sourcing watches or some other device, flashing them with Espruino, selling and donating some of the profit back - then please get in touch. I'm all for it and as long as buyers know what they're getting I can't really see a downside.
-
Please can you go into the Gadgetbridge app, tap top-left, then
Debug
, then tapincoming call
.This will 'fake' an incoming call from Gadgetbridge - I'd be interested to see if this works... If it does then the problem is on the phone, trying to get call info from Android, but if not it's on the watch
-
-
-
Gordon, the bangle.js2 software could literally power 10s or 100s of watches. I'd would have loved the project to have that type of attention.
I'd have liked that too, and Espruino was originally created as a way to bring together a bunch of third party hardware that was otherwise hard to program, but I had to swap to selling hardware because staggeringly few people were willing to pay anything for it (we're talking me making $30 in an entire year)
I'm sure there are one or two people like you that might support it, but the reality is that the majority of people wouldn't - and as I mentioned in my post above, the process of flashing software to these watches isn't always entirely reliable, and I don't want to be held responsible if/when it doesn't work and the watch is bricked.
Alternative NRF52840/32 Watches compiled list for easy discovery
This is a pretty good start:
https://jeffmer.github.io/WatchApps/
https://github.com/jeffmer/WatchApps -
Thanks for the video - Yes, you're right, looks like it's stuck down. There's a small period of time before it reboots, so maybe you could try and connect with the Web IDE at and paste in this code in the left-hand side of the Web IDE before it disconnects:
setInterval(E.kickWatchdog,100);Bangle.setOptions({btnLoadTimeout:0})
It might take a few tries before you manage it, but once it's done, that will stop the reboots (but it'll also stop you changing apps).
You could then try running:
Bangle.setOptions({lowResistanceFix:1});
And then try
clearInterval()
which will remove the earlier fix and cause it to reboot if the lowResistanceFix didn't work... But if it does work you can connect with the App Loader, paste that one line above into theCustom Boot Code
and it should all be usable again.... but there is the question of why it happens. I'm afraid usually it's because of water ingress around the switch area causing the switch to get corroded and its resistance to get lower.
-
-
-
I've just pushed a new release of Espruino, 2v25.
There have been a bunch of changes this time that you should really notice...
- Jolt.js: Increased available storage from 40 to 400kb!
- Bangle.js2: Hugely improved speed on GFX, input handling and filesystem. GPS improvements, and more reliable firmware updates from bootloader
- Espruino: Many small bugfixes and optimisations, and better support for JS classes, add Serial.isConnected to check if Bluetooth/USB/etc connected
- Packet Transfer Protocol: Documented here this protocol allows binary transfer of files to/from Espruino over the existing Serial/REPL connection (as well as evaluation of data). The IDE/App Loader isn't using this yet, but will be soon hopefully. This is working really well for faster, more reliable uploads.
- Waveform: Play waveforms direct from storage and support for +/- pins to allow 2x loudness on speakers and no decoupling capacitor
- Graphics: image alignment, fast paths for 1/2/4 bit images, .dump/.asBMP generate 16 bit images that Chrome can read, plus other misc fixes
- STM32: E.getClock for getting clock info, fix for USB corruption when deep sleep is enabled, and other tweaks
- Nordic: better BLE compatibility connecting to other devices (Bluefruit CCCD), added E.setComparator to easily allow the comparator to be used
Math.randInt
(not in JS spec, but extremely useful for embedded)Pin.getInfo()
now returns 'output' and 'mode' values- ESP32: more accurate timers, and a .setIP/setAPIP function
- ESP32C3: Some big improvements to make this build pretty usable now
... plus a bunch more. Check https://www.espruino.com/ChangeLog for full details.
- Jolt.js: Increased available storage from 40 to 400kb!
-
Yes, @jeffmer has done a bunch of work on different watches that might be worth taking a look at.
But as mentioned they are usually a bit tricky to flash firmware onto, and then the screen/buttons/etc are different enough that many existing apps may not work quite right.
Right now I get a decent amount of people trying to write Espruino onto non-official devices and then demanding support if it doesn't work or they can't return them to the way they were before. On Bangle.js 1 we updated firmware wirelessly and that failed around 5% of the time and bricked the device, requiring us to open them up (and that was once we'd really dialled everything in). Now imagine what'd happen if even for 5% of the devices that were bought they got bricked during the firmware update - it'd be a nightmare. I think I'd lose more money than I made!
You did go a bit nuts posting on 7 posts in the 24 hours since you had the button issue - but I think your 'stuck button' is most likely just a failed firmware update that can be easily resolved. Let's discuss that in https://forum.espruino.com/conversations/374874/?offset=50#comment17606350 though.
-
This is the message for others: https://forum.espruino.com/conversations/401307/
-
Yes, the lack of movement I mentioned above would do it I think...
Just FYI I merged https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/4323 now so the Bangle should be able to push sleep information to Gadgetbridge on the latest versions, it's just that we don't currently
-
-
The boot looping could just be a failed firmware update? Maybe see if you can hold the button to get it into the bootloader mode, and then update via the DFU Android/iOS app (not the App Loader).
Info at https://www.espruino.com/Firmware+Update#nrf52
But if you're still having trouble, maybe take a video and post it up so we can see?
-
The problem is Gadgetbridge maintainers have no interest in a Play Store listing, but it's kind of vital for some people, not to mention a lot less frightening for many users that are worried about going outside of the walled garden.
I don't want to publish a 'Gadgetbridge' app on the Play Store, because then it looks like I'm just reproducing their work, so in a way having a Bangle.js Gadgetbridge app works out quite well
-
-
It'd be great if you could
lsusb
and post up the USB IDs? It might help others find similar dongles/solutions.A few years ago I bought a bunch of dongles and made a list at https://www.espruino.com/Quick+Start+BLE#requirements but there are no BLE 5 dongles in that list.
I'm still doing all my main work using a Broadcom BCM20702A0 based BT 4.2 module and it's been pretty reliable for me.
-
Ok, that's a strange one, but actually maybe the
->Bluetooth
message was due to it forcing the console away from the onscreen Terminal. If the Bluetooth icon was blue then you definitely had something that was connecting though.But the fact that you had Passkey enabled would have been helpful to know :) When that's on, the Bangle makes an encrypted connection and stores keys matching your phone - but if the encryption keys change for some reason I believe the connection just gets aborted as it thinks it's someone trying to connect when they shouldn't.
there are times when I've had to connect from my phone's bluetooth menu
Ahh, that may not have helped... Normally you should only have to connect via Gadgetbridge, so it's possible your phone is getting confused if it's also trying to connect.
What might have happened is you paired with Gadgetbridge, then using your Phone's Bluetooth, but that second pairing made a new encryption key which then meant Gadgetbridge's didn't work. I'm just guessing though....
What does it take for the barometer and battery to turn green?
Interesting about the barometer - it checks between 900->1100 which seemed ok for where we test them in the UK at sealevel-ish.
For the battery it has to see the charger connected and that the battery volts rise (eg it's getting charged).
a Restore from Backup hung about 2/3 of the way through
Ahh, sorry - were you using the app loader in Gadgetbridge to do it?
Maybe try https://banglejs.com/apps/ from a PC or your Phone's web browser (with Gadgetbridge disconnected). Unfortunately when using the App Loader via Gadgetbridge it's not so good at transferring lots of data. It's frustrating, but for some reason it just doesn't seem 100% reliable
-
Hi! That's a really good question. Right now there isn't a way with the built in implementation (eventually I'll add an API for choosing font, and at that point showMenu/others can use that).
However you can just alter the implementation and overwrite the Bangle's default one. There's a tutorial on how to do it at https://www.espruino.com/Bangle.js+Modification
and the original code for showPrompt is:
https://github.com/espruino/Espruino/blob/master/libs/js/banglejs/E_showPrompt_Q3.js#L8
You basically just need to change the 2 times setFont is used to use
Intl
instead
@Ganblejs have you seen anything like this before? I know we hit issues when using reflection with field names before (there was a step that removed them from the build) but I thought we fixed that.
Perhaps in the case of calls I just need to go back to hard-coding the names...