Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wishlists / feature ideas #21

Open
Spazholio opened this issue Jun 28, 2016 · 20 comments
Open

Wishlists / feature ideas #21

Spazholio opened this issue Jun 28, 2016 · 20 comments

Comments

@Spazholio
Copy link

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
Copy link

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
Copy link
Owner

mddub commented Jun 29, 2016

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
Copy link

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
Copy link

Pogman commented Jun 30, 2016

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
Copy link
Author

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

  • I'd like it to look like my Dexcom - yellow line for my high limit, red for my low.
  • Different colors for the arrows - green for the flat, yellow for the 45 degrees, and red for the verticals.
  • Same thing with the battery icon - green for 75% and up, yellow between 25% and 75%, and red for anything lower.
  • Either a black background with white text/graphics, or the inverse. Is the color that it shows now considered "white"? Or is that some sort of "grey" because it's designed for a non-color face?
  • I don't even know if this is possible, but my dream would be something like the Nightscout watchface as a primary, at-a-glance face, but a second "page" that shows all the in-detail Urchin stuff. Does Pebble allow for something like that?

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
Copy link
Owner

mddub commented Jul 1, 2016

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:

  • I'm still not sure what's the best way to show time since last reading. Just a number of minutes, whose location is customizable in the same way as the battery? A filling-up-pie-chart icon? A thin line which draws its way along the edge of any element (@jasoncalabrese's great idea)? Or similar for a color growing across the background of any element? Probably for now it's easiest to just add some text for "number of minutes" which can go in a few places, consider the others later.
  • You can build your own version with different font sizes by changing any call to get_font. You could add a custom font by following the pattern in fonts.c.
  • Similarly, if you have a particular idea for how the status bar shows its data, you can alter/add a method to data.js.
  • I never thought to add step data, but it's a very intriguing idea, which only recently became possible in the Pebble SDK. (Could even repurpose the basal subgraph as every-5-minutes of steps, depending on the resolution Pebble provides...) A quick win could be to use the status bar to display a series of step totals by hour for the last few hours. See https://developer.pebble.com/guides/events-and-services/health/
  • The default background color is "white", but being e-ink, it indeed looks more grayish. You can make the entire watchface black with white foreground by checking "black background" on every element: https://twitter.com/jasoncalabrese/status/744764618858332160/photo/1
  • I believe coloring the battery or trend arrows just involves adding new png's and specifying them as color platform-specific. (This may be complicated by the fact that the watchface still uses SDK 3.7; not sure.)
  • If you want another watchface as your primary but want to set Urchin as a quick-launch app, you can rebuild Urchin with appinfo.json specifying that it's an app instead of a watchface.

@Spazholio
Copy link
Author

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
Copy link
Owner

mddub commented Jul 1, 2016

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

  • Replace the white in the png with transparency
  • Change the type from pbi to png in appinfo.json
  • Change the compositing mode (the second argument to bitmap_layer_set_compositing_mode) to GCompOpSet for the relevant image

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
Copy link
Owner

mddub commented Jul 1, 2016

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
Copy link
Author

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
Copy link

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
Copy link

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
Copy link
Owner

mddub commented Aug 23, 2016

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
Copy link

Pogman commented Aug 23, 2016

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
Copy link
Owner

mddub commented Aug 24, 2016

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 mddub changed the title How simple/difficult would it be to add color for the Pebble Time? Wishlists / feature ideas Aug 24, 2016
@mddub
Copy link
Owner

mddub commented Aug 24, 2016

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
Copy link

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 [email protected]
wrote:

As for colors: I just added point colors (from #37
#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
#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
#21 (comment),
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
Copy link
Owner

mddub commented Aug 24, 2016

@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):

  • iPhone: Urchin support for 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 mentioned that he may build Urchin camping mode into xDrip.

@Thasgolas
Copy link

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" [email protected] 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
#21 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/APzPDiwUASpOMBeou17LoEeoqJ0JUCoMks5qi87fgaJpZM4I_s42
.

@Pogman
Copy link

Pogman commented Oct 11, 2016

Loving the latest update!
Brilliant work Mark!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants