mddub / urchin-cgm

A graph of your CGM data on a Pebble watch.
MIT License
56 stars 45 forks source link

Wishlists / feature ideas #21

Open Spazholio opened 8 years ago

Spazholio commented 8 years ago

Not really an issue, more of a question. I just upgraded from the Classic to the Time, and I'd love to get some fancy colors into the app. Heck, I'd be happy to help out, but I'm still getting my head around programming for the Pebble. Thanks!

StephenBrown2 commented 8 years ago

Gonna piggyback off this and ask about the Pebble/Time 2's coming out, with the larger screen it'd be fantastic to see more info/bigger graph.

It's a passion project, and I'm in the same boat as Spazhollo, but I'll offer the little I can.

mddub commented 8 years ago

Appreciate the enthusiasm! Colors are 100% part of the plan (I use a Time as well). I have an idea for how it should work in the preferences - I can start by making a couple of elements customizable and let you take it from there. What are you most interested in - text colors, background colors, graph colors, BG-dependent colors?

As for the Pebble/Time 2, I have a feeling it should Just Work, or require minor tweaks if not. Anything you had in mind to take advantage of the bigger screen besides wider/taller graph?

StephenBrown2 commented 8 years ago

As far as colors go, graph colors and BG-dependent colors (within/above/below range) would be top on my list.

This may be possible now, but I'd like to see the time since last reading, updated every minute, as an option. Also multiple lines of text (also, possible now, but moar spaaace with the P/T2), like the date and other things could be added. Nothing else comes to mind at the moment, I'm very satisfied right now.

Pogman commented 8 years ago

Popping in to say thanks for the work on this.

Agree on colors both aesthetic and bg related would be great. Also multiple items per status line rather then 1 item per line for better use of space. Font choice would be nice too. I would love to see steps and if feeling really clever a way of auto showing/hiding step activity (this is good to judge potential BS drops due to a lot of walking). Auto notification of new BG (quick tap vibe) when BG below/above a certain value or lots of activity (steps check).

Damnit I'm salivating here...

Spazholio commented 8 years ago

Well, if we're throwing out wishlists, here's mine:

I don't know how many of these are feasible, but those are the things I immediately thought of. Basically, I bought a watch that has color capabilities, so I want color, dammit. I want it so badly, I started learning how to code in C (I'm a PHP/JS guy myself) and following the Pebble tutorials so I could learn how to make my own. =)

mddub commented 8 years ago

I really appreciate these wishlists! They validate what I've got planned for the next few enhancements. Of course, I can't promise anything.

I also welcome contributions. For any of these ideas, I'm happy to talk through implementation details if you file a dedicated issue, over email, or by pairing remotely.

The near-term plan is graph enhancements - colors on the graph are next, since (spoiler) I've been running a branch with configurable time scale and optional future predictions, and coloring future points differently is important. Coloring past points based on their value, or drawing the target range with configurable styles and colors, are natural follow-ups to that.

After that is showing the date. That's been "coming soon" for a bit too long.

To specific points:

Spazholio commented 8 years ago

I'll admit I have no idea what I'm doing, but I DID try to simply swap out the icons with colored ones and then rebuilding the app, but it never worked. They just showed up as black. Again, I'll reiterate that I have no clue what I'm doing, so maybe there's something in the app that's specifying to build for aplite instead of basalt and suppressing colors, but nothing immediately jumped out at me. I just built my first simple watchface according to the example docs, so I'm getting a better feel for how everything is put together.

Thanks for the update, and for being receptive to all the updates and changes we all kinda heaped on you there. =)

mddub commented 8 years ago

Ha, yeah, turns out to be way more complicated than that. I think you need to:

I chose the pbi image format combined with different compositing modes so that a single image can work on either a black or white background. (Treat black in the source image as "fill" and white in the source image as "transparent". Then use the compositing mode that causes "fill" to appear black if the parent element has a white background, or the mode which makes "fill" white if the parent background is black.) Obviously, this breaks down completely when you introduce the idea of color. The above should get you the results you want if you have a fixed color in mind.

I think the best way to do this with runtime-customizable colors is to set the background color of the bitmap layer, and choose a compositing mode which makes the bitmap data a mask. Or maybe it's to manipulate the bitmap data directly to have a different color. Or just vectorize the images and convert them to Pebble Draw Commands? Then there's the Aplite vs. Basalt quirks to iron out. I haven't spent enough time on it yet - I, too, have no idea what I'm doing.

mddub commented 8 years ago

The bitmap palette-changing approach seems to work, and is much simpler. First change the image type for all the battery icons from pbi to png. (You'll need to change all the whites to transparent if you want to show the battery against a non-white background.) Will need a bit of cleanup to make it continue to work for Aplite.

https://gist.github.com/mddub/47abd51ae7cfe9d445376444f1bc7add

Spazholio commented 8 years ago

As I was reading through the docs, I started thinking that for something as simple as an arrow, Pebble Draw might possibly be a good idea. Then again, I just managed to get the time to display, so I'm not really sure how relevant my thoughts are on this. I'll give your suggestions a shot - thanks!

StephenBrown2 commented 8 years ago

More thread hijacking for wishlist items: Shake to refresh.

I've found that often when the watchface has trouble connecting to the phone or thinks there's a cloud issue, that navigating to the menu and back to the watchface refreshes it and it pulls the data just fine. I'd like to be able to just shake my wrist and have the same effect.

Secondarily, we/you might want to create a separate "wishlist" issue to keep track of all these items.

tuzoenduro commented 8 years ago

As for how to show the time since the last reading, the Nightscout BWP watchface uses the same icon you use (the little cloud) and changes every minute (now, 1m, 2m, 3m....) to show the time elapsed since the last reading was obtained from nightscout...

Could it be implemented like that?

mddub commented 8 years ago

A recency indicator isn't my highest priority at the moment, but pull requests are welcome, and I'd be happy to give guidance.

Personally, I don't love the cloud (or any of those icons; I'm not an artist). In fact, the cloud should really be changed to an antenna icon to mean "transmitter." In online mode, the cloud means that the data on the server is stale by n minutes, but when the watchface is used in offline/"camping" mode, there is no cloud: the cloud means the transmitter hasn't been heard from in n minutes.

My preference for recency is a pie chart which fills up (or becomes less full?) as the last reading becomes older, with an optional number of minutes next to it. It could follow the same pattern as the BatteryComponent and similarly be placed in any of several corners.

Pogman commented 8 years ago

My take on this and how I use recency:

When my BG is close to low or I'm active or I've eaten and watching for a rise/drop I tend to glance more often at my readings. What I find currently is that I'm looking at the time and doing some mental math to figure when the next reading is due or how old the current one is. Having a minute/age number saves this mental work ie if it's 1 or 2 I don't expect anything for another 3 or 4 minutes - without this feedback I tend to anxiously glance way more then needed even with the mental math waiting for the next update.

Icon not needed really and just gets in the way on a small screen but a number in the upper left corner of the graph would be the fastest to digest with a glance for me.

mddub commented 8 years ago

I hear you, @Pogman. I have the same anxious reaction when I'm waiting for an update during quick changes. Didn't mean to imply it's not important - it's definitely on the roadmap - but it's not the next thing I'm going to work on. Appreciate the feedback on icon vs. text.

In my own use I have the same need, but my current setup happens to sort-of provide it, since my status bar shows the last time Loop completed, which is also the last time a new SGV arrived. Even then I'd love to not do the mental math - as is, I end up training myself to know "this week's sensor sends new readings on the 2's and 7's", which is silly.

mddub commented 8 years ago

As for colors: I just added point colors (from #37) to the latest release, v0.0.11.

Since that was the original subject of this issue, and I just filed #41 to track Pebble Time 2 support, I've renamed this to be a "Wishlist" issue, per @StephenBrown2's suggestion. Keep 'em coming.

Thasgolas commented 8 years ago

How can I/can I use camping mode? My workplace is better at blocking signals than passing them... Need that camping most...

On Tue, Aug 23, 2016 at 7:14 PM, Mark Wilson notifications@github.com wrote:

As for colors: I just added point colors (from #37 https://github.com/mddub/urchin-cgm/pull/37) to the latest release, v0.0.11 https://github.com/mddub/urchin-cgm/releases/tag/v0.0.11.

Since that was the original subject of this issue, and I just filed #41 https://github.com/mddub/urchin-cgm/issues/41 to track Pebble Time 2 support, I've renamed this to be a "Wishlist" issue, per @StephenBrown2 https://github.com/StephenBrown2's suggestion. Keep 'em coming.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mddub/urchin-cgm/issues/21#issuecomment-241921587, or mute the thread https://github.com/notifications/unsubscribe-auth/APzPDn8p8U30z3-f9GkVR7nIneZrJZQ1ks5qi4zhgaJpZM4I_s42 .


Fight back spam! Download the Blue Frog. http://www.bluesecurity.com/register/s?user=bWFyazE4MDk%3D

mddub commented 8 years ago

@Thasgolas the only camping mode available now (to my knowledge) is in pancreabble. To use it, you don't need to run a closed-loop openaps system, but you do need to have openaps running on a Raspberry Pi or Intel Edison, simply to read the CGM values from your receiver and send them to the Pebble. It's not that bad to set up, but also not a trivial amount of work/hardware if you're not going all the way to closed-looping.

A couple better options coming eventually(tm):

Thasgolas commented 8 years ago

Ok. Will look. For now, I've been using xDrip+ and the built in watchface to acomplish what I need. Thanks.

On Aug 23, 2016 23:56, "Mark Wilson" notifications@github.com wrote:

@Thasgolas https://github.com/Thasgolas the only camping mode available now (to my knowledge) is in pancreabble https://github.com/mddub/pancreabble. To use it, you don't need to run a closed-loop openaps system, but you do need to have openaps running on a Raspberry Pi or Intel Edison, simply to read the CGM values from your receiver and send them to the Pebble. It's not that bad to set up, but also not a trivial amount of work/hardware if you're not going all the way to closed-looping.

A couple better options coming eventually(tm):

-

iPhone: Urchin support for Loop https://github.com/loudnate/Loop - I've hacked together a version to use while I'm off the grid for the next two weeks, but it needs some cleanup. Like pancreabble, you wouldn't need to use Loop as a closed-loop system to get the benefit of sending your CGM readings directly to your watch.

Android: @mgranberry https://github.com/mgranberry mentioned that he may build Urchin camping mode into xDrip.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mddub/urchin-cgm/issues/21#issuecomment-241957342, or mute the thread https://github.com/notifications/unsubscribe-auth/APzPDiwUASpOMBeou17LoEeoqJ0JUCoMks5qi87fgaJpZM4I_s42 .

Pogman commented 7 years ago

Loving the latest update! Brilliant work Mark!