-
Great!
I'm in the process of getting the first 1500 of https://www.espruino.com/Jolt.js ready - I'll have to wait a little for the cases to be manufactured, but hopefully they'll be ready in a month or so.
After that we'll see how it goes - I have started selling the Espruino WiFi again for now (as the STM32 prices are down to sensible levels again) but I think probably a Pixl.js with WiFi (and maybe a motor driver again) will be coming, but probably not until the end of the year earliest
-
How would I disable the built-in Tensorflow module, if it becomes necessary?
You literally just have to comment out the
TENSORFLOW
line here: https://github.com/espruino/Espruino/blob/master/boards/BANGLEJS2.py#L40 -
-
-
When using the library with a real-world sample of 250 values (not just [1,2,3,4]), I seem to get a timeout problem ("Prompt not detected - upload failed")
Yes, that's just that it's taking a while to execute - and when you upload via the IDE it checks that after the upload completes the device responds within a certain time.
If you can upload the minified file (
discrete-wavelets.umd.min.js
) instead, that will run a bit faster... And looking at the code there it's quite simple and there are likely quite a few things you could do to get it running more efficiently (like telling Espruino to keep functions that get called often in RAM, and maybe even asking it to JIT compile some) if you do need the extra speed. -
That's interesting - maybe someone else will correct me but I'm pretty sure the buzz should only happen when the charge cable is first connected - I've got Bangles I leave on charge all the time here and I don't hear them buzzing.
So maybe the issue could be the USB charger that the charge cable is plugged into? The Bangle doesn't charge with a lot of power so maybe the charger gets confused and turns itself off/on thinking nothing is connected?
Is there an option to switch off the beeps?
There's no option but the buzz is built into the battery widget: https://github.com/espruino/BangleApps/blob/master/apps/widbat/widget.js#L3
So you can either uninstall the widget completely, or install one that has an option like
widbatpc
, or one that doesn't buzz at all likewidbata
orwidbatc
(I think) -
Concept: Run smoke tests / unit tests in custom built Espruino IDE docker images with GitHub actions
I think I could refactor that.
That would be great!
Maybe some of the asserts would be useful as a teststep in the apptests?
Yes, absolutely - I was expecting that as tests got added we might want to have some different steps in there.
How does the emulator handle "hardware" like GPS?
Right now it doesn't, but I guess a good option would be to have a test step like
GPS
that actually just calledBangle.emit("GPS",{....})
to fake the GPS, so then you know exactly which coordinates are being fed in and can then check that the code is doing the right thing.As I understand it right now things like GPS power are always off in the emulator, but maybe that could be changed or we just upload some boilerplate before the test that replaces
Bangle.setGPSPower()
with some JS that does what we want -
Yes, I meant pull request - there's a tutorial on it here, showing you how to set up your own personal app loader, and then add an app to it: https://www.espruino.com/Bangle.js+App+Loader
You can ignore most of the stuff about metadata as you've already got the app set up - it's just a matter of uploading your files and then making a pull request.
You can always try and get it set up in your own personal app loader and then send us the link to try out first
-
Is there a way, that i can allow the Self Signed Certificates in Gadgetbridge ?
I don't know - but you could google
javax.net.ssl.SSLHAndshaeExeption
and see if it turns up anything?Basically the Gadgetbridge code just calls into Android, so the HTTPS-only restriction appears to be from Android, and it's possible the self signed cert issue is built in too (but it may be there's some flag that can be set on the HTTPS request to ignore it)
-
Sorry this happened to you, but I'm glad you're finding some ways around it!
For the swipe->click idea, if overloading Bangle.setUI wasn't working for some reason, you could try adding this:
Bangle.on('swipe',(x,y) => { if (x!=1) return; global["\xff"].watches.forEach(w => { if (w.pin==BTN) w.callback(); }) });
It's very hacky, but it basically piggy-backs on the the existing setWatch to just call whatever functions were set to be called when BTN changes.
I'd also be interested in whether if you run the following code:
setInterval(function() { "jit" pinMode(BTN,"output"); BTN.reset(); pinMode(BTN,"input_pulldown"); print(BTN.read()); }, 100);
the button itself changes what's printed from
false
totrue
or if it's still always stuck ontrue
? The code is basically just forcing the button pin to be off and then reading the value again after. If that's something that actually helps, I could add it inside the firmware where it checks the button for reboots and it might really help you. -
Concept: Run smoke tests / unit tests in custom built Espruino IDE docker images with GitHub actions
There is already something available - it doesn't use the IDE but does use the emulator and run it within Node.js on the command-line - it doesn't need Docker. It's at https://github.com/espruino/BangleApps/blob/master/bin/runapptests.js
It'll scan through all apps for test files of a certain format, load the app up and try and run through a test script - which eventually could involve comparing screenshots at different points (it's just a matter of including the code from https://github.com/espruino/BangleApps/blob/master/bin/thumbnailer.js).
The thing is though, there was some talk about this and I made the rough framework but nobody seems particularly bothered about actually creating any tests. For something to catch the
activityreminder
issue the level of tests required across all apps would be pretty high.One thing that might be a big improvement for reliability is actually to catch any Errors created on the watch itself (or even within BangleApps) and bring them into some kind of database - but I've been resisting that as I wonder if there might be privacy implications if somehow personal data could included in the errors.
-
-
Hi - you probably want to look at:
Although if you're going to do that with Edge Impulse then you're not going to be using the built-in Tensorflow so you'll probably want to disable that so you don't have two versions!
If you just have DSP code that runs first, you probably want to look at whether Inline C will do what you need
-
-
When I am trying to any app or code related to HRM, my bangle JS2 is heating up
This doesn't sound good - can you locate where is the heat is coming from?
The first step I'd suggest is to ensure you run the battery totally flat (there's a menu option in Settings for this) and leave it for an hour, then recharge.
That should at least totally reset the heart rate sensor hardware, and it's possible it might fix the problem - but if not it may well be a hardware failure of some kind
-
Would https://www.espruino.com/Reference#l_crypto_SHA256 work?
That doesn't have the HMAC but you might be able to use https://www.espruino.com/hmac
Seems like there's a convenience function for SHA1 but
hmac=require("hmac"); ... = new hmac.HMAC(key, require('crypto').SHA256, 64, 20);
might do it (if you know what block size HmacSHA256 uses?) -
-
You mean using the Puck.js library? (source at https://github.com/espruino/EspruinoWebTools/blob/master/puck.js)
I believe you can use
Puck. /getConnection()
to get the currently active connection (you can usePuck.connect
if not) and then you can doconnection.on('close', function(d) { ... })
on that? -
-
Ok, basically:
- Checkout https://github.com/espruino/BangleApps onto your PC (with submodules)
- Copy https://github.com/espruino/BangleApps/tree/master/apps/fontext to
fontkorean
- Rename
fontext
tofontkorean
inboot.js
andmetadata.json
- Run
./font_creator.js "Extended" ../apps/fontkorean/font.pbf
in thebin
directory of BangleApps (ideally update the README if you're going to publish it too)
and you're done. But you may need to install Node.js and NPM, run
npm install pngjs
and also download the plane0 font from https://unifoundry.com/unifont/index.html and convert it topng
fileI can't really provide help if you hit issues with that though - after all, literally all it's going to do is save you 0.5-1MB of flash, it won't provide extra functionality
- Checkout https://github.com/espruino/BangleApps onto your PC (with submodules)
-
-
-
Hi - that's a good point! I've just added it to the IDE - so if you go to https://www.espruino.com/ide/# and refresh the page you should get version v0.78.16 which will have a fix in.
Worth noting you won't get
g
for code completion until you're connected to the Bangle - since it's only at that point the IDE knows it's connected to a device with an LCD. -
Is there an official channel for submitting these warranty claims?
Just before that - have you tried 'massaging' the button? so run your finger in a circle around the button, pushing it in different directions, both pressing lightly and hard enough to depress the button. It might fix it - it's worth a try.
The best bet is if you could send an email to contact@espruino.com and provide a link to this post.
Generally for warranty it's 6 months on any failure unless it's due to abuse, 12 months if it's not related to wear and tear, and outside that we can do you a new one for half price. In this case it sounds like even though you're outside 6 months the watch has had a pretty easy life and would definitely be covered.
Is this mainly for ESP32 usage? I can't imagine many other devices where this makes too much sense? Using external flash would be neat but you'd have to be able to supply external read/write functions too.
But I guess possibly it could be done, although right now none of the functions take an instance parameter so doing
require("storage", options)
is nontrivial. There is already code in there to handle two flash areas, and usage ofC:filename
to force where data is stored - I guess making the address of the second area configurable would be possible - but I wonder whether this would be any more useful than if it were just configured for and baked into the firmware?