-
• #27
Yeah I can use the watch fine and am really enjoying it. I wanted to update fw so I can get twisting to light up the watch but Ill wait a bit with that. Not based in UK unfortunately, but perhaps I can try SWD in the holiday.
Never seen the bootloader screen btw. My dad also has the watch and I think I've seen it on that one actually.
-
• #28
... but it's still not working on his watch, even though my presumably identical device works fine.
well if whole flash (including softdevice and MBR?) and whole uicr is same then it runs same software so something else (hardware) must be different - like button debouncing, or pull resistor preventing
get_btn1_state()
to return true (momentarily at boot time)also the spi flash - can it say storage OK while the flash is not responding?
-
• #29
Ok, great. I feel like this is definitely a software problem, and luckily we can change pretty much everything from within Bangle.js, so when I figure out what the problem actually is it should be trivial to fix it remotely.
-
• #30
The issue is that because the bootloader isn't displayed it's very hard to know when to release the button
maybe you could vibrate a bit when entering bootloader (dfu_start is determined to be true)?
-
• #31
@fanoush thanks - everything from address 0 to 0x100000 (1MB) is the same, and the UICR from 0x10001000 to 0x10001210 is the same. I'm not sure if I should be checking anything else?
I believe the issue is it's just not entering the bootloader at all. The bootloader should always turn the LCD on, and even if for some reason the LCD wasn't responding the backlight should come on which should be pretty easy to see.
The bootloader should still be fine if the SPI flash isn't responding too - but even if it wasn't by that point it should have drawn some stuff onto the screen that we'd be able to see. It's really hard to know what's up.
-
• #32
Would it be possible to write an app that force loads (Branches to) the bootloader?
-
• #33
Possibly, yes... It's not quite as easy as just jumping there though.
-
• #34
@susticle have you ever seen the bootloader on your watches? Or was it working once and now it's not?
Sorry, I'm new to this. How does the bootloader look like? Is it the screen saying:
SW RESET
DFV 2V20.219CHECK STORAGE
NO NEW FWBOOTING...
Then I keep seeing it.
I believe you can still use your watch just fine.
Yes, I can do some tests with it as long I don't try to use the touchscreen to choose menu entries (then the watch keeps rebooting every time).
-
• #35
Is it the screen saying:
DFU 2V20.219
Yes. If you're seeing this, it's different to what is happening on the video that @Muldjord posted on http://forum.espruino.com/conversations/370830/
Looking back at your past comments I think I understand what's going on (pressing the touchscreen causes a reboot?) but please could you take a video showing what happens and post it in a new thread? It just makes it way easier to see
-
• #36
YES! I don't know what changed or @Gordon did exactly but I got mine working.
So here is what's happend. On the recent update it updated the bootloader.
Now I tried the procedure again. After around 6 seconds the screen flickers very faintly for about 2 times. Release quickly at that point! The watch now seems to be stuck and doesnt update the watchface. However secretly the bootloader is now active. You can then use the regular nftoolbox app to update the firmware like described on the wiki page.Even after the update the bootloader is still not visibile, but it does load and become active.
@Muldjord you can try this now as well.Now the watch still sometimes gets stuck in the storage ok screen. If this happens you can do the same thing, release the button as soon as the screen flickers and then wait until the bootloader times out and the watchscreen will be shown again.
-
• #37
@7kasper thanks! That is really interesting!
It makes a lot of sense too - it's possible that on some devices the LCD takes a tad longer than others to initialise. If the bootloader starts it too early it wouldn't accept any commands until Espruino started - it'd still be showing the old image from Bangle.js!
-
• #38
@7kasper, Yes, I actually did exactly what you described yesterday after somehow getting it into DFU mode (even though I couldn't see it and don't quite know how I did it), getting my fw to .244.
But of course the problem persists in that it still doesn't show the boot messages. So there's no way to tell when to release the button to get it to the clock or the other modes (I'm still not sure what those are).EDIT: Mine always gets stuck at the "Storage OK" screen though. I seem to be able to get it to the clock if I try releasing the button between one of those faint flashes. But I can't seem to find a pattern in it.
-
• #39
Thanks - this is really good news then. When I thought @Muldjord's was completely broken I arranged to send a replacement - @Muldjord when you get that please could you send the old one back? hopefully I can use that to figure out why the screen isn't responding to the bootloader, then I can push an update to the bootloader and everything will be sorted.
... if you get stuck at 'Storage Ok' you can always just connect with the IDE and write 'load()' on the left-hand side to reload the clock. If that fails you can reinstall default apps with the app loader (as I guess during everything that went on the apps might have got corrupted somehow)
-
• #41
WARNING: THIS FIX SHOULD NOT BE ATTEMPTED NOW. Instead, just go to
Firmware Update
in the app loader, and click theclick here to update to bootloader
link if your bootloader version is below 2v12.Watch received from @Muldjord, and I'm happy to report that I now have a fix for this! Thanks for waiting everyone!
The issue was pretty simple - the bootloader was sending data out to the LCD too quickly (it was way faster than the spec allowed)... So as a result some of the LCDs in watches weren't able to interpret the data.
So to fix this you need to update the bootloader. Same steps as before, just new file:
- Download the attached file
- Open https://banglejs.com/apps
- Click on 'Firmware Update' - and connect to your Bangle when prompted
- Click on 'Choose File', choose the '.hex' file you downloaded, and click 'Upload'
- It'll take about 30s and will stay at 100% for a further ~10 sec
- Then it'll say 'hold button to reload'. Hold it for 10s or so and this time if all is well you should see the bootloader screen. Keep holding until '=====' goes across the screen and you re-enter Bangle.js though.
Now, it's probably best to update your firmware just in case as well - you can use the same Firmware Updater for this. Just go into it the same way but this time click the 'Cutting Edge build' link, then
Upload
. That'll take a much longer time, but once done the watch should auto-restart into the new firmware.
1 Attachment
- Download the attached file
-
• #43
Yes can report that my watch is now fixed as well. Neat :-)
-
• #44
That's great news!
-
• #45
Ok, so after a long time sitting on my shelf my bangle is recharged and ready to play with again - but I'm having this issue and the steps in @Gordon 's post (#41 above) don't seem to help.
Following ther steps, I upload the file then get 'hold button to reload', the watch goes blank then a screen appears which starts 'WATCHDOG' - but disappears before I can read any more! The I'm back to the screen with 'Bangle', a watch image (actually a bangle 1 picture?), and the fw version remains shown as 2v10.219, below this is a serial number, then at the bottom it says
Checking storage Storage ok ->Bluetooth
That's followed by a black line, and then nothing else happens.
If I hold the button for longer, I get the <===== > bit, then the screen says
DFU START BTN1=REBOOT
and after minute or so it then goes to the same screen as above.
Am I doing something wrong?
-
• #46
@daldred I'm not sure if you ever actually had a problem with the bootloader in your watch? I didn't see you post here earlier? If the blocky
DFU
messages show on the screen after a reboot, it shows the bootloader is all working ok.Either way, it now seems to be fixed. So...
Checking storage Storage ok ->Bluetooth
If this shows, it's either because the Bangle.js booted with the button held down (in which case it i ntentionally doesn't load any apps as a kind of 'recovery mode') or it's because all apps got removed.
I'd suggest you:
- Go to the app loader, and the 'firmware update' app, and make sure you're updated to firmware version 2v15
- After that (and the reboot it'll cause) go to the app loader again, click the 'More...' tab, and 'Install Default apps' - then wait.
- And after that, when you reboot the clock should be displayed
- Go to the app loader, and the 'firmware update' app, and make sure you're updated to firmware version 2v15
-
• #47
then get 'hold button to reload', the watch goes blank then a screen appears which starts 'WATCHDOG'
you are holding for too long here. when you hold too long like this you get watchdog reboot, this is designed to get you out of lock ups when nothing else works. you should hold like 3-4 seconds on that screen, not more (the message could say this)
Is anyone based in the UK? It'd be handy to actually get my hands on one so I could check the flash memory with the SWD programmer, and obviously there are customs issues with Europe now.
@7kasper @susticle have you ever seen the bootloader on your watches? Or was it working once and now it's not?
I believe you can still use your watch just fine. Either log in with the IDE and type
load()
, or if you time the press of the button just right it'll reboot and load the watch code. The issue is that because the bootloader isn't displayed it's very hard to know when to release the button, so you basically end up doing https://www.espruino.com/Bangle.js2#resetting-without-loading-any-code by accident each time.