-
I realise this is a 3-year-old thread that has been dredged up, but since I find floating-point numbers interesting (as a professional programmer), I thought I'd leave this link to a website I find useful: https://www.h-schmidt.net/FloatConverter/IEEE754.html
It demonstrates that in general floating-point numbers can almost never represent fractions exactly (see 'Value actually stored in float'). As a result, you will always be able to find edge cases where rounding is apparently being performed incorrectly.
-
I can't clearly remember when I last did a 'factory reset', but it was probably around the time I upgraded from 2v12 to 2v13. From memory my 2v12 had crashed with 'storage corrupt' and when it finished erasing and restarting I upgraded to 2v13 before restoring my apps and stuff.
I don't really understand how corruption that might have occurred days or even weeks ago can end up with such fatal results - complete erasure of the watch. If you're going to be writing to some new part of the memory, wouldn't it get erased first? That's how I handle Flash chips in my data logger. When the write routines get to the first address of an erasable block, that block is erased before the writes continue.
However, I recognise that emulating a file system is quite different from simple linear data logging.
-
Last night I tried to update apps on my watch running the original release 2v13 firmware for the first time in one or two weeks. They did not succeed.
I was only able to try with my Android phone. Each time I attempted to update an app it appeared to start off OK, but I never got the green 'success' popup at the bottom of the screen. I tried the LCARS clock app first, then the Messages app. Both were broken afterwards and would not work.
I was only after a few attempts retrying the update that the Bangle2 suddenly reset and showed a "storage corrupt" message and erased everything!
Prior to all this there had been no indication that anything was wrong. After it restarted I upgraded to 2V13.19 and started restoring my watch.
I can't remember exactly what I had installed, but it included:
- Messages & Android Integration
- my 2FA Authenticator
- LCARS clock
- Timer Clock
- Digital clock widget
- Bluetooth widget
- Pedometer widget
Sorry I don't have anything more useful. It wiped itself out before I could try anything else.
- Messages & Android Integration
-
I'm not aware of CMYK displays. Maybe actual e-paper displays that default to white and need to subtract colours to work (like actual paper and printing). I think we're mostly likely to get an upgraded display via the 64-colour one I found, since it's basically exactly the same as the current one, except for the extra colours.
-
@Gordon - whatever you've done, it's worked! Thanks.
-
I'm trying to upgrade from 2v12.111 to 2v13 using the banglejs.com/apps Firmware Updater.
I can pick the firmware file as usual and then click Upload, but while a progress bar appears on the watch (and does nothing), the progress bar appears on the web page only briefly before disappearing. Nothing further happens.
I've tried on my Android phone and a PC.
I've also tried the 2v12.126 and plain 2v12 with the same results. Same with the development app loader.
-
That will teach me to try to catch up on the bus to work! :-) Miss all sorts of things.
I'm not sure that I like getTimeToAlarm() returning undefined if the alarm is defined, but more than 1 day in the future. If the alarm is going to go off, then it should calculate when in all cases.
A minor thing - regarding the button labelled "Sleep" - is "Snooze" a more common term for that? That's what my clock radio says, anyway. Sample size of 1...
-
-
RE: colours & display: Is there sub-pixel rendering support? What's the layout of the LCD like?
The data sheet for the display is here: https://www.j-display.com/product/pdf/Datasheet/5LPM013M126C_specification_ver03.pdf
If I had to choose between more colours and more pixels I'd choose more colours. The display is already 194DPI (near enough to 200DPI) - basically the same as a 4K 24" screen. There's also the memory and power needed to generate and drive the display to consider.
Japan Display have a 64-colour version of what the Bangle2 has (dimensions are the same, pinout is slightly different, but still an SPI interface): https://www.j-display.com/product/pdf/Datasheet/5LPM013M601B_specification_ver01.pdf
-
-
OK, so it seems deleting the .info files is the correct thing to do. My work-in-progress is currently at https://andrewgoz.github.io/Authentiwatch/?id=timerclk
I'll review what I've done tonight and hopefully make a PR.
-
I guess this means something like Palm Graffiti might be possible?
-
-
I've seen a lot of apps repeatedly use code like :
require("module").function_call(foo); require("module").function_call(foo); require("module").function_call(foo);
with the same module over and over. Is that a bad thing? I would have thought something like:
var mod = require("module"); // ... mod.function_call(foo); mod.function_call(foo); mod.function_call(foo);
would be better if you're using the same module over and over? This is particularly noticeable for modules like "locale".
The Modules page doesn't cover this, but uses the first convention. The entry for require uses the second as the example.
I'd prefer the second (assigning to a variable), but I'd like confirmation that is best.
-
I've been looking at the TimerClock app. I don't know who wrote it, but I really like the integration of functionality, but I don't like the extra stopwatch/timer/alarm icons it adds to the launcher and app loader.
It appears the extra icons and entries are due to the three ".info" files in the project. I've manually deleted these files from my watch using the IDE and everything appears as I'd like.
My question is: given that everything appears to be OK, what problems have I missed/overlooked? Why would these files have been created in the first place?
-
This is mostly for @Numerist but others might be interested. The reason for 64 colours rather than something smaller, like 16, is due to the way colours work. Displays produce colours using red/green/blue sub-pixels. For the Bangle2, these three sub-colours are 1-bit meaning the total colours produced are 2^(3*1)=8. For the Pebble Time the sub-colours are 2-bit (just 1 more bit each) and the total colours are 2^(3*2)=64.
I suppose a display manufacturer could take inspiration from digital cameras and come up with something based on a Bayer filter - 1 bit for red, 1 bit for blue and 2 bits for green: 4 bits total per pixel or 2^4=16. I've never heard of anything like that, though, and suspect the Pebble Time screen is the simplest next step up from what the Bangle 2 has.
Oh, and -several million for a round display. If you want a smart watch over a regular watch, you're wanting to display information - text. There's a very good reason your phone, PC, and even books all have rectangular displays and not circular ones.
-
I'm pretty sure Gordon didn't design or even spec the Bangle2. He just chose the best option already being manufactured (by SMAWatch on this case).
I, too, would like more buttons. However, in my opinion the power cost of a full colour display is not worth it. The Pebbles 64-colour display is ideal. Still very low power and sunlight readable, but enough colours to not need dithering to the extent the Bangle2 does (it's already too easy the make text unreadable).
-
On another thread somebody suggested reporting minimum voltages while discharging and maximum voltages while charging. That would greatly reduce those fluctuations seen under different loads. It would also better match the average persons expectations that the battery should never go up while not charging and never down while charging.
-
-
I've got two Bangle2s - one from you (the one that started this thread), the other is a dodgy one I got direct from SMA and flashed myself. That second one just now got itself tied up in knots trying to upgrade the firmware. On rebooting it declared "corrupt storage" and erased itself. After restarting when I tried the firmware upgrade again it worked.
Neither of these watches has come close to filling storage. They both report over 6500K free.
I could be wrong, but I get the impression that Flash starts out in an erased 'pristine' state and is written to over time. When data is changed, the old data is considered 'free' but is not actually erased. Writing continues to pristine memory until that inevitably runs out. Then the old (free) data is actually erased and put into a 'pristine' state that can be reused - this being that compact process.
I guess what I'm now asking in a very roundabout way is - even if my Bangles have always reported over 6500K free at all times - will they eventually hit this compact corruption issue?
-
-
-
I've been doing development work on my app and spent several hours today trying to work out why it wasn't drawing to the display when asked to.
It's the "2FA" app and it can display multiple tokens in a scroll-y list. I found that sometimes one token on the list simply wouldn't draw, even though other tokens would - and they're all using the same draw function.
After many hours I gave up trying to work out what I was doing wrong and downgraded the firmware from the 2v12.101 cutting edge I'd been using back to the 2v12 release. Everything started working!
There is something up with the 101 firmware. As I've been working on my new drawing code for a few days now, it's possible this was present earlier than 101, but I just attributed bugs to my code-in-progress rather than the firmware.
-
Last night I was watching the TV and glanced at my watch. It was showing UTC time instead of my correct local time. I don't remember there being any problems the last time I had looked at it.
I checked the settings and the locale offset was still correct, but changing it wouldn't fix the display.
I tried resetting the watch and the boot sequence showed something like "flash corrupt" and it proceeded to erase the watch. Eventually it restarted reset back to a fresh factory install.
I've since reverted back to the "Release" 2v12.
I don't recall doing anything differently that I hadn't done before. It just became "not working" all by itself.
All seems good now, this is more of an "FYI" than anything else.
My app (Authentiwatch) needs camera access to scan QR codes in the web interface.
If I use https://banglejs.com/apps/ all is good, the camera works after requesting and giving permission. However, if I use BangleJS GadgetBridge to manage my apps, it behaves as if the camera is blocked, without giving me any option to allow access.
Can something be done about this?