Skip to content

Conversation

@crossplatformdev
Copy link

Hi,

I explain the changes I have made in the merge to master of my branch.

crossplatformdev#1

@crossplatformdev crossplatformdev force-pushed the master branch 3 times, most recently from fe8ce84 to 6982b07 Compare August 18, 2024 05:37
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements several enhancements to the Watchy firmware (version 1.4.14), focusing on timezone management, display optimization, and new features for the ESP32S3 variant.

  • Runtime GMT timezone configuration: Introduces a flexible timezone system with 28 GMT offset options and support for location-based timezones
  • Display optimizations: Changes to single-render approach with darkBorder enabled by default and modified refresh parameters throughout
  • Moon phase calculation: Adds astronomical moon phase tracking with detailed orbital information
  • ESP32S3 USB detection: Implements USB plug detection for charging status display

Reviewed changes

Copilot reviewed 29 out of 38 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/config.h Version bump to 1.4.14, added timezone menu item, adjusted menu dimensions
src/TimezonesGMT.h New timezone management system with GMT offsets and location timezone support
src/Watchy32KRTC.cpp Timezone initialization logic using new GMT system
src/Watchy.h Added moon phase support, USB detection, and changed gmtOffset type to long
src/Watchy.cpp Integrated timezone selection in setTime(), moon phase calculations, USB detection for ESP32S3, changed all display.display() calls to use partial refresh (true)
src/MoonPhase.h/cpp New moon phase calculation implementation with astronomical data
src/Display.h/cpp darkBorder default changed to true, added drawDarkBorder() and isDarkBorder() methods
examples/WatchFaces/7_SEG/ Added USB charge icon support for ESP32S3, adjusted battery level thresholds
examples/WatchFaces/pipboy/ New PipBoy-themed watchface example with custom fonts and graphics
README.md Simplified setup instructions to reference documentation website

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +176 to +177
case 7:
showMoonPhase();
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing break statement after case 7. This will cause fall-through to the default case, which could lead to unexpected behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +260 to +261
case 7:
showMoonPhase();
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing break statement after case 7. This will cause fall-through to the default case, which could lead to unexpected behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +53 to +57
//This line overrides the intended behaviour that I want for the
//darkBorder variable. I want to set the darkBorder variable to dark
//and then paint the border always dark, not always putting the opposite
//colour of the background, like it is done here.
//darkBorder = dark;
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment describes the intended behavior but then doesn't follow it. The line darkBorder = dark is commented out, but the function is supposed to set darkBorder while drawDarkBorder() should only paint. This creates confusion about the actual design. Consider either updating the comment to match the implementation or creating a clearer separation between setting state and drawing.

Suggested change
//This line overrides the intended behaviour that I want for the
//darkBorder variable. I want to set the darkBorder variable to dark
//and then paint the border always dark, not always putting the opposite
//colour of the background, like it is done here.
//darkBorder = dark;
// This function only paints the border with the specified color.
// It does not modify the darkBorder state variable.
// To set the darkBorder state and paint, use setDarkBorder().

Copilot uses AI. Check for mistakes.
display.setTextColor(blink ? GxEPD_WHITE : GxEPD_BLACK);
}
display.print(2000 + year);
display.print(1970 + year);
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The year calculation changed from 2000 + year to 1970 + year. This appears to be a significant change that could affect time display. Verify this is intentional and that year variable now represents years since 1970 (Unix epoch) rather than years since 2000 (Y2K epoch). This could be a breaking change for existing watch face implementations.

Copilot uses AI. Check for mistakes.
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

Successfully merging this pull request may close these issues.

2 participants