-
-
Notifications
You must be signed in to change notification settings - Fork 952
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
Star Trek Watchface #1462
base: main
Are you sure you want to change the base?
Star Trek Watchface #1462
Conversation
This is cool! In the future, I want to try to get a Stardate thing going - I've tried getting behind how the Star Trek Online Stardate works but perhaps as another time format that could be a nice future feature. https://www.stoacademy.com/tools/stardate.php I don't think licensing will be a problem - I doubt for a FOSS project any bullets will be shot, but if it is a problem I suppose naming it after a character or a ship. TMI the only copyrighted thing is the actual show + logo |
I love this watchface! I really hope it gets merged |
Nice work! For an alternate name idea, might I suggest "LCARS"? |
Hey, you might want to look at the watch face initialization code, I've been running this watch face on my watch for a few days, and it's started rebooting whenever the watch attempts to chime on the hour/30 minute mark It will also briefly display incorrectly right before it crashes... |
Thanks for testing 👍. I never use the chimes, that's why I missed that. I will have a look into it. |
I cannot replicate the crash. @CCF100 Could you please provide some info on what exactly you are running on your watch so I can replicate? |
I'm just running the changes in this PR. I haven't merged in any other branches. Edit: It seems to take a few days of running before the watch crashes |
Aha! It is using the fallback font and the brackets are gone. This means that the external resources are missing somehow. My watch has still not crashed since I enabled the chimes, but I am also not running the exact code in this branch. |
TBH, I kinda prefer the fallback font. It's more readable for me. |
I had the fallback as the default font for some time while I developed the watch face (It is just the same as in the digital style watch face) and I also think it is more readable. I think increasing the "small gaps" in the font in size would already do a lot for legibility, so I might try to edit the .otf to try it out if I have some time. |
I think the problem might be rather it's having issues loading the external resources, causing it to crash and reboot. It has the external resources installed. |
@ljahn I'm flashing the new branch to my watch now, will report back on any instability with this branch ^.^ |
@ljahn I still experience crashing when I have chimes enabled with the rebased branch :/ |
This is also an issue with the Infinineat and Casio watch faces, but in those cases it doesn't crash, just doesn't load the resources. |
I think I found the problem. @CCF100 please test when you have time. |
|
Alas, the problem still exists. For whatever reason, enabling the chimes causes the watch to crash every time the chimes occurs... |
Build size and comparison to main:
|
I am currently out of ideas what the reason could be. So my hypothesis is that it it still something to do with the external resources, but I don't know what. I am thankful for any additional testers and information on this 😃 |
@CCF100 |
9a04f59
to
6ecf80a
Compare
I updated the watch face to 1.12.0 |
Why is nothing happen here? |
6ecf80a
to
6fdef99
Compare
Well there is something happening 😉 I have channeled my inner masochist and drawn the detailed brackets around the step count fully in lvgl. Lastly, I think I found the bug causing the crash. @CCF100 The destructor of the watchface tried to free the font when it was closed. But if the fallback font was loaded, this would result in attempt to free the system font, which lead to a crash. This is fixed now as well. This branch is now at 1.13.0, not at the current development status, so if you build this, you get 1.13.0 plus the StarTrek watchface. |
6fdef99
to
64283c1
Compare
I continued to do more work on this and I now consider it ready for review @JF002 This watch face now supports all the usual icons and information like steps and heart rate. Here is a gif of what it looks like: The one thing that reaches deeper into the system is the startup animation. I added |
The clang-tidy check workflow is failing because of a problem with the submodules lvgl and littlefs. What could cause this? |
Yeah, I can't see any reason why it should fail... I'll try re-running the workflow. Edit: re-running hasn't seemed to help. Very strange that it's only that workflow that fails, not any others. |
Well, it fixed itself 🎉 😉 |
I updated the watchface to version 1.14.0. I tested on my PineTime and so far there is no problem. Alas, I cannot get Gadgetbridge Nightly to send weather to the watch (validated with PTS face), so there could be a problem with that, but I do not expect it, because I mostly copied the PTS code for weather again. |
I compiled this branch and also have issues with the weather. I'm using the latest stable version of Gadgetbridge. Weather is working on PineTimeStyle without any issues. On the Star Trek watchface the weather disappears quite often, e.g. after swiping to the right (to open the menu with brightness, flashlight, ...). Then I have to disable weather in the watch face settings and enable it again to make it work. |
@mueller-ma By pure coincidence, I fixed this today 😄. Do you have any other input on the watch face? |
Overall I really like the watch face. A few thoughts on it:
|
Let me throw a link at you for an alternative LCARS watchface based on the older LCARS from Voyager. Maybe we can work together to get a bit more momentum back, as this one seems to be around since 2022? |
@w4tsn True, there is not much happening here, but I don't intend to push people to get this merged in any way. I made the watchface mainly for myself and for the challenge. I regularly update it to every new release, because I run it on my pinetime and of course want the newest features 😉. I maintain this merge request to offer it to the infinitime community, but I am also perfectly fine with it never getting merged. |
@ljahn Silly question, but do I have to compile this from source to use it? I am trying to compile it in docker but I keep running into an error :( Was wondering if youd be able to share the file |
c5abbee
to
c9f1455
Compare
I did the great rebase and squash that was long overdue. This is now all in one commit and back on top of current |
Hi @Handrail9, |
man this is an amazing watchface, definitly the best I've seen |
I was hoping to see this watchface added to the main 1.15 branch, welp I guess I'll skip this update to keep using this one |
@abrahamlnx |
Description
I made a watch face inspired by Star Trek.
It supports all the icons and values of the standard digital face.
The status icons for Bluetooth, battery, power and notifications are on the left (the empty spot between battery and Bluetooth in the picture below is there because I could not make the small notification indicator "i" appear in InfiniSim).
Step count is under the main clock digits in brackets. The distance between the brackets leaves enough space for the default step goal of 10,000. It breaks down at 100,000 steps, where the number reaches over the right bracket.
If the heart rate measurement is enabled, it is displayed above the date section.
It also supports both 12h and 24h formats.
Technical stuff
I used the new external resources for the large number font and the small brackets.
I include the brackets as images, because I could not be bothered to draw them as rectangles and circles, like the rest of the display, because they are so detailed. They use up less space in total than the font.
I thought about saving only one and turning it to make the other, but I could not get lvgl to do this.
The font for the large time numbers is Edge of the Galaxy, which is public domain.
The smaller text for dates and stuff is the InfiniTime standard font.
Testing
I tested this on InfiniSim (thoroughly, because I had a memory leak at first [from not freeing the font in the destructor 🤦]) and also run it at my personal PineTime without crash so far.
Things that could be changed
One could change the small font to a font closer to the Star Trek displays, but since it is so tiny, I don't think it would enhance the watch face much (apart from maybe removing the dot from inside the zero).
I am no graphics designer and therefore not good at selecting a balanced color palette. This could use some doing by someone with that skill.
I am unsure if it is okay to call this watch face "Star Trek" in the end, because of licensing issues.