#Muninn - Battery Wisdom
2429 messages · Page 3 of 3 (latest)
All disabled for me, do they still behind the scene?
not that i know of (but do keep in mind that having them off will make it harder for them to troubleshoot any issues you run into)
Yeah thanks to everyone who have those options enabled, it's essential. I may turn app crashes when I get the watch.
The coredumps can often point straight to the cause of a fw crash so worth sending them
especially helpful since coredumps are now uploaded automatically and not only with bug reports!
Distribution is a good tool. You can tell by the levels the pool of PT2 units is a lot smaller than the one for P2D.
Once I'm done with contest entries I'll turn my eye to Muninn data quality.
Brief start at looking at the nature of the data, here's some stats:
Pebble 2
Items: 3
Days: min 5 / avg 7 / max 10 (range 5)
Avg. Rate: 16%/d
Pebble 2 Duo
Items: 56
Days: min 3 / avg 19 / max 33 (range 30)
Avg. Rate: 7%/d
Pebble 2 HR
Items: 5
Days: min 3 / avg 6 / max 8 (range 5)
Avg. Rate: 18%/d
Pebble Time
Items: 36
Days: min 0 / avg 6 / max 14 (range 14)
Avg. Rate: 21%/d
Pebble Time 2
Items: 9
Days: min 4 / avg 8 / max 17 (range 13)
Avg. Rate: 15%/d
Pebble Time Round
Items: 4
Days: min 2 / avg 3 / max 5 (range 4)
Avg. Rate: 38%/d
Pebble Time Steel
Items: 42
Days: min 4 / avg 18 / max 100 (range 96)
Avg. Rate: 10%/d
As you can see, there's a large range where days of battery life estimated is concerned. Obviously each set of samples has a different length, some may be very small or contain only extreme values.
I haven't begun looking at things like excluding outliers or using distributions etc. but that is probably the next step.
No guarantees that isn't some error on my side 😅
Maybe they charged it every day but specifically skipped the sample times and made sure to only charge it enough so that the battery level didn't drop at sll
It's essentially a calculated drain rate of 1. 100% / 1%/d = 100 days
Probably from before the last update switched that to fixed point arithmetic
Oh, I guess it's not time between charges
I wonder how they got it to drain 1% per day on a watch with 10% battery increments though
I would want to examine that record
It has 11 days of data (44 samples), one charge, and most samples are 'no change'
Also a 12 day gap in data - must decide what to do when that occurs.
{ res: -103, r: -1, cp: 10, ts: 1772449202 },
{ res: -102, r: -1, cp: 0, ts: 1771369202 },
From 'no change' to 'charged' and the charged value is 10 from 0, which I guess is when it conked out, and the wakeup chain was broken or the watch was dead for ~2 weeks.
Maybe I need a 'if a large gap, stop there' logic step
I've introduced some changes for this, but no time to publish right now:
- On wakeup, if the time since last sample is >12h (two samples), note the time but don't store a sample. Next wakeup will be compared to this time instead of 12 days ago for example
- On the JS side, if a gap is too large, skip that sample and carry on averaging. Therefore the large gap isn't considered for the 'total diff / total time' calculation
Hopefully I have time to publish it soon and eventually these get filtered out.
Same here, just did 2 weeks away, didn't even touch the charger, came back with over 60%
Next step will be to use something like mediam or IQR to suitably treat extreme outliers.
Another day.
I lied - I put a quick standard deviation into the Lambda aggregation code, eliminated those 2o away, and then replaced the average with the median. The commonness of this value actually supports this and makes PTS swing closer to believe-ability!
Pebble 2
Items: 3
Days: min 6 / avg 7 median 6 / max 10 (range 4)
Avg. Rate: 15%/d
[6 6 10]
Pebble 2 Duo
Items: 57
Days: min 3 / avg 20 median 20 / max 50 (range 47)
Avg. Rate: 7%/d
[6 6 11 13 13 13 13 13 14 14 14 14 14 14 14 17 17 17 17 17 17 17 20 20 20 20 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 33 33 33 33 33]
Pebble 2 HR
Items: 5
Days: min 3 / avg 6 median 6 / max 8 (range 5)
Avg. Rate: 18%/d
[3 6 6 7 8]
Pebble Time
Items: 35
Days: min 1 / avg 6 median 5 / max 14 (range 13)
Avg. Rate: 21%/d
[1 2 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 7 7 7 8 8 10 11]
Pebble Time 2
Items: 10
Days: min 4 / avg 8 median 6 / max 17 (range 13)
Avg. Rate: 15%/d
[4 4 5 6 6 8 9 11 13]
Pebble Time Round
Items: 4
Days: min 2 / avg 3 median 3 / max 5 (range 4)
Avg. Rate: 38%/d
[2 3 3 5]
Pebble Time Steel
Items: 42
Days: min 4 / avg 18 median 11 / max 100 (range 96)
Avg. Rate: 9%/d
[4 4 5 5 5 6 6 8 8 8 8 8 8 9 9 9 10 10 11 11 11 13 13 13 14 14 14 20 20 20 20 25 25 25 25 33 33 33 50 50 50]
So that one PTS with '100 days' is eliminated
(the min/max do not include the eliminated values so I can still see them)

George "Nuclear Reactor Watch" is an outlier and should not have been counted
@rough token more muninn weirdness - I'm still running that build you gave me that doesn't auto-close the messages and should tell me if the data gets wiped
i haven't seen the data get wiped yet, but my cloud sync ID seems to have mysteriously changed
That is strange. I can tell you the DB is still there, so I have to ask if it's a different watch? Because of the watch token which should not be able to change. But I know you'll say it's the same watch. No chance you can share both upload IDs and/or the watch token please?
I don't know how to find the watch token, but the old ID is 4FC7DC and the new ID is 8428EC
Thinking about it, it might've changed when you gave me the special build?
...yeah, derp, that's april 4th.
i'm so sorry lmao
id token count updated_at
4FC7DC cc76....e603 16 April 4 2026 09:00:03.785 UTC
8428EC 610f....f399 45 April 16 2026 09:05:01.455 UTC
Yeah it changed then - the watch token changed. So something considered that a 'new app' although the UUID has never changed. The docs say:
A string that is is guaranteed to be identical for each Pebble device for the same app across different mobile devices. The token is unique to your app and cannot be used to track Pebble devices across applications.
🤔
If the watch token changes, that's the only unique way to dedupe so I don't know if there's anything I can do.
"The token is unique to your app" would do it - i bet you a sideloaded app is considered different to the same app from the app store
That's the logical conclusion, based not on UUID
nah, don't worry about it - I just didn't realize that the change correlated to me getting the sideloaded version
sorry to bother ya'
No worries, I wasn't aware it could happen but now I am!
I swapped from a side loaded version of the app to the AppStore version and I think from rebble to repebble’s App Store version.
My PT2 has two ids, I assume one is related to the data collected by the rebble version of the app, and one for the Core version… should it have stayed the same?
One is 53737E, the other is EAC854
It sounds like the system treats that as a similar change 🤔
sideload != rebble appstore != core appstore
Haunted PT2 update: they've had me set a lot of things to quite low levels and I've had to use the TicToc face as a baseline, but these numbers are finally looking decent!
That's good! I wonder why your unit is particularly sensitive
I suspect I'm holding it wrong 😅
Is french available? If not, is it easy to add? Like, all is in place to facilitate translators?
C'est ne pas, je suis desole
I've actually never tried, not sure how difficult it would be
I don't know either. I guess anyone can download the source and translate for their own use. But it would be complex to keep up to date with future releases.
It's on my list, so I'll try and look at it soon
I wonder if I should try and redesign the main and graph pages to use more PebbleOS-isms, like PDC icons and colored background, etc. It would probably have to start scrolling though.
Possible bug - I just spotted this stray graph plot to the bottom right?
Nice spot. I guess the last charge just went off the left side?
Ohh yeah that will be it. And as we know my numbers are often erratic. Though, touch wood, looking much better and more consistent lately!
It's a bird then a ☁️
The lefthand one maybe, not the right hand two 😂
An extremely lo-fi start on something more PebbleOS-like. Or at least fits more into it. Image the banner is a PDC version perhaps.
I honestly like the "dashboard" look. I open muninn only for quick battery checks and it's nice to be able to see everything on one screen
I will +1 the current design, but the scrolling makes sense if you have a notion of what information is the most important to someone
E.g. is “last charged day” really as important as “days left” (surely not). So the scrolling can probably open up different design opportunities for sure
I’d compromise the functionality for the aesthetic to keep the little diamond banner (even without text) under the bird though. I think it’s distinguishing
(I don’t want to say new design bad old design good! I just want to iterate as well that old design is good! New design can be good too!)
There is a lot to say for the current look and feel and personality 👍
It's just a concept for now - and a bit of a barren one at that
i also honestly prefer the current look - I think it manages to do it's own thing very well and doesn't need to be replaced
although I can understand the problems with clarity
This is all good feedback, thanks. Perhaps there are some interative steps from the current design I can take
Perhaps exchanging the thick separating lines for a larger data item area and more words
i think you could achieve a more "pebble" look without necessarily compromising your information density
my only real complaint about the current look is the almost total lack of color
as a p2d owner i cannot relate
it might be fun to channel the original 3.x settings view for ideas on how to do a tiled dashboard that is "pebble-like":
once you have your early-preorder Time 2 you'll immediately demand color in every app
well, sounds like Chris has a month or so to figure it out!
gotta have shapes and colors
honestly i will +1 that i like muninn's current dashboard look and feel, and its info density feels tasteful and thought-out in a way not many dashboard apps actually achieve. my only complaint vis-a-vis pebble Style™ is that the down button opening a submenu is not what I expect to happen
You get a splash on the right side, not sure what else could be in color. Maybe the icons could somehow weave the main red color into them. Ravens famously are just black etc too
agreed keeping the red/black brand colors is important, you presumably don't want it to just end up being green/yellow/red like battery+
Maybe a blue sky / deep blue night sky...
Looks like the global stats history list just broke 200 users. PT2 is slowly climbing and PTS is lowering closer to expected values
Need a few more PT2 users to have a better time
Pebble Time 2
Items: 23
Days: min 4 / avg 12 median 10 / max 25 (range 21)
Avg. Rate: 11%/d
[4 6 6 6 7 7 8 8 9 10 10 10 11 13 14 14 14 14 17 17 20]
- Removed the 'status' string for more space
- More consistent alignment of text and icons
- Labels for prev. and next charge
- By moving all
TextLayers to theLayerUpdateProc, freed enough memory to bring two more icons and the original braid bitmap to Aplite!
And now we play the "screenshot ordering game"! 🙌
I thought about adding Gabbro support today but there's so much WORK to do
New fonts, new icons, layout values 😖
I can't wait for the "think you're done but you accidentally put Basalt into Aplite not noticing the tab changed" part
I wish I could re-arrange screenshots on the core store
https://muninn.chrislewis.me.uk?id=8428EC 81 samples in with the special build and I still haven't gotten it to error
it's starting to get really really annoying having to close it every 6 hours :p
Hmm. It's a shame we can't know more about when that happens 😕 Thanks for your patience though.
Maybe it was a mobile app bug that got fixed. Maybe I'm being too optimistic.
Noticed just now that the graph is overlapping the red border on the right of the screen
This is on the latest version from the rebble AppStore
The new layout is very clean
What are the white dots?
where the sample was predicted to land, vs where it actually landed (the filled in black dot)
Gotcha, thanks
Ooh I wonder why that's happening
I haven't touched the graph recently
I see a gap in data near the start, maybe that has an effect
Astosia, are you willing to try a test PBW?
Sure
Thanks - will try and build one tonight
@verbal sparrow Here, see if this helps, if you're still seeing it. Basing the x position based on the total time between samples, instead of the accumulated reported time diffs summed up. Subtly different things.
Count me as well. But my stats are horrible lol
It's all data, as long as it's not erroneous in the collection!
This worked, and the graph looks fine again
Thanks a lot! When I get back from London tonight I'll remember to make a release 👍
No way it's the Muninn
So he tells me 🐦⬛
Trying to update to Gabbro - pebble-scalable does a lot of work, but I have a couple dozen icons to enlarge or re-source from MDI, and more fonts to load... The scalable library really needs a way to only load fonts it uses and take that worry away from the app 😕
oh, i actually have a bit of feedback on scalable library
i primarily work in watchfaceland, and i like my faces to shrink or squash for unobstructedarea --- pebble-scalable seems like exactly what i want, but it appears to only work based on the raw screen resolution at build time, and there's no way to feed it changing layer bounds, right?
Correct - I did try adding something like that ages ago but ran out of energy. But it is possible!
The only problem might be that if not all elements use it, those that don't will just stay the same.
Looks like the place the name is taken for the launcher has changed 👍
So it's not "Muninn - Battery Wi..." anymore
oh good change
omg yeah! awesome change!
Also don't ask why MIDI player has Tube Status' icon because it's easy to work out
105 samples in and the issue still hasn't reoccured, so I think it's time to switch back to mainline muninn
Roger that! 🙏
I have ideas to revamp the Sync to Phone screen and make it more intuitive
Lots to do... 😔
would you be able to fit everything?
Oh yes, might even be able to show both items at the bottom, but I need to scale up and pixel-fix theicons, select new fonts, draw new birds etc... And the button hint bar looks comical now too 😅
godspeed 🫡
Excellent. Yeah mine is lovely and stable these days too - I have been tinkering with different backlight levels but generally things feel consistent and stable at the moment.
I wonder if I should make that trend text more useful - say it's on trend or more than 5% out, for example
I know what it means but where is the value
I do wonder if it could be better expressed - I'm into this stuff and it's not data I regularly understand or get much from
Maybe just some natural language vague ones might be even better
That was my thinking - does this mean a good this or a bad thing etc.
I've been test running 4.9.173 and my battery usage has been alright so far, even with HRM and touch enabled (that seems to fix some stuff within NimBLE)
Granted I don't think I was impacted by whatever bug was attempted to be patched that was causing disconnects and battery drain
I reluctantly (because it requires signing in to the app) filed a bug report
Which firmware are you on
And thank you for filing a bug report, it's a good idea overall
So, drain exists for me on 4.9.171 all the way up to 4.9.174, but I accidentally included a coredump of my patched 4.9.174 FW
but those patches are just "if airplane mode or stationary mode turns on, wipe notification history"
so I hope it isn't disregarded because I'm using custom FW
Interesting
Last time I had battery drain issues they (fairly sensibly) asked me to reset all my backlight settings to default
But I also noticed that my battery drain issues went away with a recent firmware - I can't remember which now, I'll try and find it
My backlight settings are pretty minimal, motion disabled, tap is on, ambient sensor and dynamic are off, intensity medium
Ah yeah fair - mine were all set quite high when they asked.
They also had me using only the TicToc watch face for a while which was incredibly annoying but I got it because for them it's such a baseline one to rule out other issues
So after the reset and only running Muninn it's still an issue?
Appears so, I wonder if it's client-side OS or app integration issue. I paired it to my non-GrapheneOS phone and it seemed to not drain much at all from preliminary tests
What graph Muninn shows?
Not enough data yet
I think samples are every 6 hours default? Are 4, 8 and 12 available options? Could be useful to monitor more aggressively when tracking a drain then switch to less when everything is fine.
This has come up before - loo long between samples and recent changes in consumption get filtered out, and too often and there will be too many similar samples and less data to calculate consumption from. But I could be wrong
Ok, I was just curious.
I may experiment with 4 / 12 as options and some volunteers (inc. myself) can see how that affects things. It might make it better! 🤷♂️
Are you on Reddit CL? I've praised your app and someone replied with a fact I can't verify.
https://www.reddit.com/r/pebble/comments/1t6d646/comment/okhftub/
Munnin only measures my watch battery level in the 10s . So if battery+ shows 29% then munnin would measure 20%. Anyone else or just me? On time steel.
Sometimes! I'll take a look, thanks
Thank you for spreading the word! I have replied there.
My current roadmap:
- Finish Gabbro support (lots of image work)
- Try really hard to find code space to add Aplite sync/web support
- The "4/6/12h experiment"
Although unfortunately I'm kicking it off with going away for the weekend
Have a nice weekend! My weekend starts in 1 hour and a half. I don't work on Fridays anymore.
I do kinda of love the way the new RGB backlight makes some of the more monochrome apps and watchfaces look
(slight banding is just the camera refresh rate/rolling shutter and not a screen defect!)
Including my janky-ass vibecode watch face exhibiting my complete lack of design skillz 😂
That's the beauty of Pebble - you can make it do exactly what you need
Yes!
PT2 now the largest model category 👀
I know this isn’t a leaderboard
But the Pebble 2 Duo is winning
Black and white fans thriving
P2D is king, 22 days on mine so far
I'm very surprised you have more ptrs than p2s!
Any clue what was the issue?
No idea really, tried too many things and didn't track em
shouldn't be babysitting my watch, so decided not to
Mine's reporting 3.7% drain per day average on my setup on 4.9.173, honestly really good
Yea mine also gets around 3-4% per day
3.6 squad checking in
Aplite sync/web support is within reach! I can do everything in the emulator except scroll down the stats window menu. A few more bytes should do it!
I managed this by simplifying settings in a few ways:
- Remove Vibe on Sample (not useful in daily use)
- Remove Delete All Data (uninstalling should do the same)
- Remove manual upload action & comms code (daily update and upload on opening Settings on mobile still there)
Maybe manually drawing a few more icons will get us there.
Anybody here have an Aplite watch they can test a Muninn sync-enabled build with? I have a non-crashing emulator, at last.
i have a pebble steel, currently charging. could probably give that a shot once it's full
Thanks - will tidy it up tonight and put a PBW here
We lost a few more icons though, on that platform. But the long-term value is worth it I think. Plus those items that lost icons are the ones with text description labels 🤷♂️
Here we go - should support sync of stats to the phone, and after 8 samples allow viewing the stats and using the webapp feature too
cc @void jungle
Somehow a PR2 entered the global stats. Own up!
Now I have to update the backend which was probably almost overdue anyway
Version 1.37 (side loaded with pbw)
Settings does work and shows a dashboard with some stats. I have 16 samples for reference
The All/Last Week/Last Month buttons don't seem to do anything
Zooming does work on the graph sometimes but also can glitch out.
On the watch, clicking Sync to Phone opens the page, but if I try to move in the menu at all, the app crashes
Sometimes clicking Settings menu in watch also crashes. Not sure what exactly reproduces, but it's not a one-off
Thanks! It's the fact there's a very low amount of free memory left that makes it crash. I'll keep working on it!
And I'm talking a few dozen bytes, probably
It's quite impressive what you've managed to do! No worries!
What memory it is? Per apps? Like an app cannot use more than x kilobytes? I don't even know about the limits...
On aplite (OG) you get 24 kilobytes per app for all your code and heap (working memory). Later watches have a lot more - 64k or 128k.
It's a pretty tight constraint. As CL alluded to you often have to cut features to fit on aplite because you don't have space for all the code.
Oh wow the new battery diagnostics in the Pebble app look super helpful
I don't think Muninn is at risk of being Sherlocked! But it is really cool to see
holy smokes, this is cool af
This is version 1.2.0.3 of the Android app. From the release notes it should be on both Android and iOS
yeah, sorry I couldn't find it because I haven't gotten 1.2.0.3 yet
There's no way this is true
That breakdown is nice 👍
Although it thinks my HRM interval is less than 10m when it's set to 30m currently 🤔
Let us know! I assume the 10% steps cause some inaccuracies but I don't have one to test with
I'm surprised there's no per app breakdown, the firmware knows how much battery each app uses
Would that work with older watches?
yes! this was a part of telemetry sent to pebble technology corp
uhh actually no not necessarily ig?
we dont read old watches telemetry
although we could technically
what would stop you from reading it locally anyway
there are some potential privacy issues with external uses of that data tbf
I don't know the exact format of the old telemetry data I guess there's nothing much stopping us we just havent done yet
it's a binary format!
I have looked into it before, I really wish that telemetry would be send to rws since there's a lot of potential in providing very useful info to developers by summarising it well
the app is open source you can do a pr if you want the feature
do you think sending telemetry to rebble would be approved considering something as simple as non login use of the rebble appstore wasn't
I also don't want to sign the cla so it's a no go anyway
I can fork and build that for myself, but it's useless unless a lot of people use it
granted, I would just write the feature and leave it hanging around as CC0 hoping somebody is nice enough to push it into the app, but I still have no hope of it ever being approved so I won't subject anyone to that
i mean if its only done when a user is logged into rebble (meaning accepted rebbles TOS) and its only on rebble watches I guess it would be fine
the remote timeline pins pr is currently only in limbo because the developer didnt reply to steve's "is this ready for review?"
well, to be fair, the server component of that isn't ready
I started a refactor to make the entire thing make a bit more sense
Also handles the pins after subscription has been added or removed
Not tested
the same developer submitted some code fcm to that repo, but I don't really like how it's done and I think I did it slightly better in my earlier pr
(by the by, if you want to, you can review that code, I would love to get feedback on that pr)
ill probably have some time over the weekend <3
I left some reviews for myself, which I will address, they are there so that you know I'm aware of some of the issues
I shaved a bit more off - can you try this version please?
Ignore above - this one please! 3.5kB free at build time
(or anyone else with Aplite who wants to try sync / web stats support! I want to see if it will crash due to running out of memory)
so far so good! not crashing when navigating the send the phone page or settings. will let you know if I run into anything
Encouraging! Yes please try it all for some more days and see how it goes
Can you share the graph please? I'd like to use it to work on as a test case
I also have a version with a tweaked algo you could try?
It ended up going back to normal after a bit, I'm not sure what happened
I think I do - you probably have a drop, then a few 'no change' samples, then another drop. Turns out the weighting towards the most recent 4 samples is very sensitive if most or all of them are 'no change'. It was probably that.
This version has an algo for calculating rate of drain that does what the JS side does - counts all the drops and total time observed instead of using all the individual predictions. With test data, it seems to work well for both 1% and 10% increment battery level changes. I'm quietly optimistic about it if you'd like to try it and see what sort of numbers you get on the main screen?
Seems the global stats numbers are slowly going down 🤔 I will find time soon to find out why but it's a bit of a mystery
The new battery stats view in the app maybe?
That might explain the daily increases slowing but not actually number decreasing.
I've identified a bug in the backend that has begun duplicating records because I chose the wrong primary key. Will take some deft DB work to fix so hopefully I get a chunk of time this weekend 🤞
Found the issue - the aggregation function was hitting the DynamoDB 1MB per page limit and not paginating. Fixed now 🙌
Latest PBW can always be found here:
https://github.com/C-D-Lewis/pebble-dev/tree/master/pbw
Looks like I can't pin messages, but at least some will know now
Hello. I installed Muninn on my PT2 when I got it earlier this week (the 18th). It took 1 sample that day, but since then I’ve had 2 messages saying it couldn’t take a sample, and a couple of battery draining notifications (so it’s working) - but under recent samples it still only has that 1 sample from the 18th.
I can’t see anything obvious I’ve turned off, so not sure why it doesn’t seem to be checking?
Hmm. What did the messages say? Do you turn the watch off at all?
Any other apps installed that use wakeups?
“Muninn couldn’t take a sample, but will continue” - and I’ve had the watch turned on all the time. I don’t wear it 24/7, but don’t put it on standby or in aeroplane mode.
Other apps I have are Dribble, Bobby, Checklist, Pebble Fit, Pebble Rail, Timer, Stopwatch and News Headlines.
(Pretty sure I had all those installed when it took that first reading as well - possibly not Pebble Fit)
The message "Muninn missed a sample, but will continue." is shown when the app is launched, but the scheduled wakeup is in the past (i.e: it was missed) - if the watch wasn't off then it might be a bug if the system didn't action the wakeup. If it keeps misbehaving, I'd suggest raising a bug report in the mobile app.
You can also try sleeping/waking the bird by holding up on the main screen, or re-installing the app entirely from the appstore.
Ooh, pebble_black and pebble_white showing up means I have some backend work to do 👀
Also big day for Muninn - 100+ global stats contributions today
I guess people are getting their watches and looking at appstores 🙌
Heh, I saw pebble_black a little while. Cool to see them still kicking. I dusted off my old Pebble Steel to have it join the party, but it just struggles to remain connected to my 17-series iPhone so it's just not very enjoyable to use. 🙁
They just showed up because the last update enabled experimental support for sync and stats upload for OG (aplite) watches. Hopefully they can start to contribute their data to the average and not crash!
They should appear as "Pebble (original)" now
I also made groups with less than 5 members show as 'muted' because the sample size is tiny.
Ok, reinstalled the app and it took a sample yesterday covering 18.00 to 23.59. Success! Then this morning I got the missed a sample message and a battery draining more quickly message - and I’d not worn or touched my watch from about 11.30pm to 7.30 am.
I’ll try wearing my watch to sleep tonight just to see what happens, and then put in a bug report.
Thanks - I've also just noticed that draining faster warning doesn't wait for the minimum samples so it's going to probably be too noisy. Will add it to my list to improve.
A Reddit comment mentioned someone was recommended Muninn by the Pebble team, which if true is a nice thing to hear 🙂
Also a quick hacky prototype - combining the graph and log so that the log window and all associated code can be removed to free up even more code space and maybe bring back a couple of Aplite icons. Needs improvement, obviously, but it's an idea.
A bit better, may reduce the info density at the bottom. But it's super hot in my room now and I'm tired of wiping the emulator every install (which I know should have a fix soonish). More to come 🤞
Option B - reduced data density (and the diffs can be worked out on the graph anyway) - I think it's a lot quicker to understand. Still pending layout refinement.
WIP change that shows the diff since 24h ago, which will allow people to self-test compare against the estimated drain rate. Given the relatively simple maths I wouldn't expect any surprises but it is information.
Side note, no idea why one of those screenshots taken with the core app has blue at the top 🤷♂️
Gabbro MVP - a few small things left to fix
Don't have a DVT watch to test on this time but I have faith
Maybe a less terrible set of button hints
This will hopefully be a lifesaver for testing my pt1 once I get it lmao
I'd be interested in seeing the data. I guess with a battery replacement it should last about 5-7 days
That's about what I was getting on my old out of storage pt without a new battery lol
But more like 5-6 days most weeks
Something about either watch firmware or app update means Muninn is now crashing my PT2. Just made it go to prf! Screen shimmers really quickly for a brief time then watch crashes. Am on iOS TestFlight 1.2.1(6) mobile app and watch is on 4.9.183 firmware. Think Muninn is on 1.41 or 1.42
Will see if I can get some logs in the morning, and have logged a bug in the core app
Hmm, ave reported something similar the other day. I'm on 4.9.178 without issue. Interesting how far behind I am though.
Tempting to put the watch back on 178 and see if it’s a firmware change causing it
I assume I'm on a different firmware group
But if it is a fw change, I hope it's quickly remedied
hm, not seeing this on muninn 1.42.0, watch firmware 178
I don't get a crash on either of my other PT2s, which I haven't updated to 4.9.183 from 178 yet.
the watch on 183 refuses to let me downgrade the firmware to 178
Yeah this is a 183 issue
Is there a way I can upgrade out of band to try and find the cause? Probably something like compiling my own fw
But it feels like a regression on Core's side that I shouldn't bandaid, but narrowing it down could help them
you could try sideloading the 183 firmware if that's what you mean?
I ran pebble logs on my watch while opening Muninn, there was nothing different about the logs, and nothing "crashed" or errored on it
just got this, which is the same as on the 178 watch. [16:13:41] main_window.c:524> wl 107644B
[16:13:41] pkjs> Muninn:98:27891 [Starting JS tests]
[16:13:41] pkjs> Muninn:98:25138 WARN: Ignoring <1d diff (3 2 21610s)
[16:13:41] pkjs> Muninn:98:25138 WARN: Ignoring <1d diff (5 4 21603s)
[16:13:41] pkjs> Muninn:98:30257 [Completed 10 JS tests]
[16:13:41] pkjs> Muninn:98:46130 PebbleKit JS ready!
[16:13:41] pkjs> Muninn:98:46440 appmessage: {"PUSH_PIN":1,"DAYS_REMAINING":12,"DISCHARGE_RATE":6,"GET_SYNC_INFO":1}
[16:13:41] pkjs> Muninn:98:42979 Inserting pin: {"id":"muninn-prediction","time":"2026-06-12T11:00:00.417Z","layout":{"type":"genericPin","title":"Time to charge!","body":"Muninn predicts you will need to charge soon (Est. 6%/day)","tinyIcon":"system://images/GENERIC_WARNING"}}
[16:13:41] pkjs> Muninn:98:43209 Pin insert returned
[16:13:41] pkjs> Muninn:98:25138 WARN: Ignoring <1d diff (5 4 21600s)
[16:13:41] pkjs> Muninn:98:38552 {"SYNC_TIMESTAMP":1780225200,"SYNC_COUNT":197,"STAT_TOTAL_DAYS":49,"STAT_ALL_TIME_RATE":"9.6","STAT_LAST_WEEK_RATE":"5.8","STAT_BATTERY_LIFE":17,"STAT_MTBC":16,"UPLOAD_ID":"EAC854"}
[16:13:41] comm.c:120> Sync: 1780225200 (197)```
actually just tried it again, and the logs stop just before that last line. DEBUG:libpebble2.communication:<- AppMessage(command=255, transaction_id=1, data=AppMessageACK())
[18:39:04] pkjs> Muninn:98:42979 Inserting pin: {"id":"muninn-prediction","time":"2026-06-13T11:00:00.579Z","layout":{"type":"genericPin","title":"Time to charge!","body":"Muninn predicts you will need to charge soon (Est. 6%/day)","tinyIcon":"system://images/GENERIC_WARNING"}}
[18:39:04] pkjs> Muninn:98:43209 Pin insert returned
[18:39:04] pkjs> Muninn:98:25138 WARN: Ignoring <1d diff (5 4 21600s)
[18:39:04] pkjs> Muninn:98:38552 {"SYNC_TIMESTAMP":1780225200,"SYNC_COUNT":197,"STAT_TOTAL_DAYS":49,"STAT_ALL_TIME_RATE":"9.6","STAT_LAST_WEEK_RATE":"5.8","STAT_BATTERY_LIFE":17,"STAT_MTBC":16,"UPLOAD_ID":"EAC854"}
Exception in thread PebbleConnection:
Traceback (most recent call last): ```
Hmm, that's before crashing?
Yes
The screen sometimes does that shimmer thing while this is going on. Then it freezes then crashes
Or it crashes straight away
Won’t do it a third time or it will reset my watch again.
I presume the bug has since been fixed. A couple of months ago, Muninn caused a factory reset on all my watches (Steel, Time, and 2 Duo). So, I stopped running Muninn until the other day.
That would be nice, but I've only been seeing reports of this in the last week, and on a firmware that's newer to the one I get served. Maybe that was a separate bug.
My Steel (Aplite) and Time (Basalt) are on old firmware that's not getting updated.
I logged a bug and hopefully added additional logs
Thanks! I'm curious as to the details 🤓
@verbal sparrow would these times roughly align with your muninn crashes?
2 hours ago
4 hours ago (2x)
one day ago
Yes, sounds about right. Video above was 2 hours ago and the sdk logs above are 4 and 6 hours ago. The last successful capture by Muninn was on the 30 May fir this watch according to Chris’ website
ok, so
seems like they are stack overflows
the problem is: those should not crash the entire watch
some something is going quite wrong
6pm 30 May was the last successful capture.
that would make sense according to the crashes
It’s a 183+ firmware issue. Doesn’t happen on my other PT2 connected to the same phone on 178
Indeed, a few others and myself on 178 report no crashes
But nothing is 100% certain. Appreciate the investigation!
its also not every watch, my dev board runs muninn and isnt affected
ok some information
the issue already existed before, it only became more apparent now
it is an edge case
it is not muninns fault
I am curious if any PT2 DVT watches that are still out there on 183+ are impacted by this
Astosia's is a DVT
ah
What's DVT?
basically a pre-production unit
most PT2 alpha units are DVT units (Design Validation Testing), you can easily tell if one is a DVT via the lack of engravings on the back and if the unit had barcode stickers on it
they need their own build target since it's slightly different than the retail PT2 units
I see. That's viewable when someone shows the back side and keeps stickers on it.
we found a fix 🎉
Muninn is now working on my watch with a firmware fix from JP
nice work
And yes my DVT watch is completely unmarred by engravings
Hooray! Thank you! What was the cause?
'it' being the fw or the app? I just load fonts as far as I'm aware, nothing beyond that
Seems 183 is now more live, so I'm getting a few more reports. Okay to say it's being fixed soon?
Ah, it's now available for my watch
I was prompted to upgrade to 183. App crashes on that version for me.
fw
Interesting. Maybe it was my use of many system fonts and a custom font that caused it to behave such a way
Thanks to your app, an issue was found, an issue that could have been present for longer if it wasn't discovered by your app.
Indeed, and it's good to have detectives looking for the cause and a fix too 
13 Days left on 80% charge on a Pebble Time Steel with original battery seems a bit optimistic to me.
After a long hiatus from having Muninn installed on my Pebble Time, it remembered how long since it last recorded a charge cycle; 131 days. 3.3 Days left appears accurate.
It should improve as more samples are taken
If you get any weirdness after that long gap, I'd recommend reinstalling it to clear the data and start fresh. It should carry on okay though but it's less tested
I assume 22 Days left for 91% charge should be due to improvements in the firmware. Plus, I updated my watchface to update the screen once per minute instead of every second.
This was a fresh re-install of Muninn.
I deleted Muninn after it forced a factory reset on all my watches one day. I'm back now.
As in, used the trashcan delete icon in the Pebble mobile app, then re-installed from the app store?
Yup.
I deleted it several months ago.
I was too busy at the time to debug the problem.
Hmm. I just deleted it from my locker and aside from finding a fun visual bug, it forgot everything.
So yeah, try it again now in case there's locker weirdness or something
It was this assumption that allowed me to remove the delete data option and get code space back for Aplite
Hmm, definitely not a thoroughly tested use case. The Pebble app will Do Things when changing between many devices but I don't have a clear picture what that is.
Well, having only one phone, I'm thoroughly testing this use case. 🤠
When I delete it from the phone app, it deletes from the currently paired watch, but not the other watches. What do you suggest?
Should I delete it from in the other watches?
The currently paired watch is the Pebble Time which showed 131 days since charge.
I see the other watches don't get the delete message until they re-pair with the phone, as expected.
This '0' display bug has been fixed now. It was a result of a animation first-frame fix. I should declutter that logic some time.
Muninn is currently crashing my watch and forcing a restart. I updated pebbleos last night to 4.9.183, not sure if related
Anything I can do for a temp fix?
That fw introduced a problem, but a fix is on the way
Apart from rollback the fw, I don't think so, apologies!
No worries! Figured I would ask since a quick search didn't turn anything up
I'll hold out for a fix, thanks a ton for your work 🫡
I see fw .185 has a fix according to a reddit comment - I hope it's made available soon
Thanks for reporting all the same!
I have a “dirty” version of 184 running with JP’s fix and it’s been solid all day, so yes I expect once that’s tidied up 185 will fix it
Amazing, very excited lol
You just had to scroll up a bit... no worry, one on reddit did ask on same issue while there was a post about that if he had read a few topics before asking.
Ah, the discord search bar fails me once again 😅
It's no big deal 🙂 and it's not guaranteed to land on the right search terms first time either
hopefully the new firmware fixes come out soon
Well nevermind i was about to send a video of this exact issue after the update. 🤣