PebbleOS on Bangle.js 2? #7339
Replies: 8 comments 34 replies
-
So the error seems to be that the ID read from flash does not match this predefined value EDIT: oh it gets 0 if the log is correct so indeed generic issue with the command |
Beta Was this translation helpful? Give feedback.
-
Yes, that's what I thought originally, so I made the gd25q64.c file with what I believe is the flash ID and the correct commands (the ID might be wrong of course) as well as some code to try and do wakeup. But as you say the actual command isn't working at all, and even disabling that check, it seems no other flash commands are working, so I guess it's something to do with how QSPI is setup to communicate with the Bangle - although it would appear that it works for whatever nRF52840 device the developer are using. ... I guess maybe there's a chance there is some pin I didn't manage to change in the code that overlaps with the SPI peripheral and causes problems? |
Beta Was this translation helpful? Give feedback.
-
Pebble javascript apps on espruino. Apps written in javascript for pebbleOS, would it be feasable to get them running on espruino? Without modification? Maybe some could basically just be copied over and others would need some kind of compatibility layer app that routed Pebble API calls to Bangle.js counterparts. Just thinking out loud. |
Beta Was this translation helpful? Give feedback.
-
@gfwilliams I just placed a preorder for the next pebble with touchscreen and four hw buttons to arrive in december. |
Beta Was this translation helpful? Give feedback.
-
Well, it turns out it is posssible to run PebbleOS on Bangle.js 2! Right now you've got to crack the whole thing open first and solder to UART pins, but I think it's going to be possible to at least write everything via the SWD pins |
Beta Was this translation helpful? Give feedback.
-
The touchscreen is now working to fake button presses. See it in action: https://youtu.be/d_U5xZiBUGc |
Beta Was this translation helpful? Give feedback.
-
Update: it turns out the JavaScript TicToc clock face does run fine. There are two different ones depending on whether you have a color of black&white watch, and because right now I'm only doing black and white you're getting the simplified one (which is a digital clock). So I think it's all working as well as can be expected now. Apparently there's still a bit of work to do on Bluetooth pairing so it's not liking pairing with Gadgetbridge as-is, so it's not really usable as a watch right now, but it should be pretty easy to follow along with development. |
Beta Was this translation helpful? Give feedback.
-
@gfwilliams Just out of curiosity, how difficult would it be to get Espruino running on a Core 2 Duo or Core Time 2? I rewrote an app I use frequently that I originally created for my Pebble and Pebble Time to run on my Bangle.js 1, but haven't modified it to run on my Bangle.js 2 because I think it'd be too difficult to use without multiple hardware buttons. I really love my Bangles so am not very interested in running PebbleOS on my Bangle.js 2 but would consider buying a Core Time 2 if I could run Bangle apps on it because of the hardware buttons. Perhaps the Core Time 2 hardware could become the Bangle.js 3? Or if that's not feasible, would you consider selling a version of Espruino that would run on a Core Time 2 so you could get rewarded for your porting work? Regardless, thank you very much again for all your dedication and hard work on the Bangle! Your efforts have made me, and I'm sure countless other Bangle users, very happy! |
Beta Was this translation helpful? Give feedback.
-
Posted at 2025-02-07 by @gfwilliams
You may have seen in the news recently that the Pebble watch OS has now been Open Sourced and work is underway to port it to nRF52840 devices (seemingly with the hope that a new Pebble watch can be made).
Bangle.js 2 happens to also be nRF52840 and so it may be possible to run Pebble OS on it. There is some discussion on https://forum.espruino.com/conversations/374260/?offset=250#comment17663202
I have been having a bit of a play around porting the Pebble OS to Bangle.js 2, and I put a repo here: https://github.com/gfwilliams/pebble-banglejs2
Some instructions and info on the current state are at the top of the README on that repository.
It now builds, flashes, and the code kinda runs, but errors because it can't access the flash chip. I've also added code for the display but haven't been able to test it yet.
If anyone is willing to give this a try and see what they can do it'd be hugely appreciated (@fanoush? You seem to be awesome at this kind of thing)
To get debug info you'll have to crack the watch open and connect to the UATX pin, which isn't ideal - but I have a bunch of watches I can't sell here (for instance with a dead magnetometer) so I'd be willing to provide one to anyone who needs a device they can pull apart to test with.
I guess there is the potential to do debug messages over RTT serial (over SWD). It's another step, but it might make sense to allow better debug without breaking watches open.
Beta Was this translation helpful? Give feedback.
All reactions