diff --git a/src/clock.py b/src/clock.py index 0847d49e..202ebc69 100644 --- a/src/clock.py +++ b/src/clock.py @@ -23,11 +23,11 @@ class Clock: self.timezone = self._get_timezone() self.last_time = None self.last_date = None - # Colors for different elements - using brighter colors + # Colors for different elements - using maximum brightness colors self.COLORS = { - 'time': (255, 255, 255), # Bright white for time - 'ampm': (200, 200, 255), # Light blue for AM/PM - 'date': (255, 200, 200) # Light red for date + 'time': (255, 255, 255), # Pure white for time + 'ampm': (255, 255, 0), # Bright yellow for AM/PM + 'date': (255, 160, 0) # Orange for date } def _get_timezone(self) -> pytz.timezone: @@ -111,18 +111,18 @@ class Clock: # Draw time (large, centered, near top) self.display_manager.draw_text( time_str, - y=2, # Slightly higher + y=1, # Move to top color=self.COLORS['time'], small_font=False ) # Draw AM/PM (small, next to time) time_width = self.display_manager.font.getlength(time_str) - ampm_x = (display_width + time_width) // 2 + 1 # Closer to time + ampm_x = (display_width + time_width) // 2 + 1 self.display_manager.draw_text( ampm, x=ampm_x, - y=4, # Align better with time + y=3, # Align with time color=self.COLORS['ampm'], small_font=True ) @@ -130,14 +130,11 @@ class Clock: # Draw date (small, centered below time) self.display_manager.draw_text( date_str, - y=display_height - 8, # Slightly higher from bottom + y=display_height - 7, # Move up slightly color=self.COLORS['date'], small_font=True ) - # Update display - self.display_manager.update_display() - # Update cache self.last_time = time_str self.last_date = date_str diff --git a/src/display_manager.py b/src/display_manager.py index 2f348885..9e7191ea 100644 --- a/src/display_manager.py +++ b/src/display_manager.py @@ -36,21 +36,20 @@ class DisplayManager: options.parallel = hardware_config.get('parallel', 1) options.hardware_mapping = hardware_config.get('hardware_mapping', 'adafruit-hat-pwm') - # Increase brightness and optimize display quality - options.brightness = hardware_config.get('brightness', 100) # Maximum brightness - options.pwm_bits = hardware_config.get('pwm_bits', 11) # Maximum color depth - options.pwm_lsb_nanoseconds = hardware_config.get('pwm_lsb_nanoseconds', 130) - options.led_rgb_sequence = hardware_config.get('led_rgb_sequence', 'RGB') + # Optimize display settings for maximum visibility + options.brightness = 100 # Maximum brightness + options.pwm_bits = 11 # Maximum color depth + options.pwm_lsb_nanoseconds = 130 + options.led_rgb_sequence = 'RGB' options.pixel_mapper_config = hardware_config.get('pixel_mapper_config', '') - options.row_address_type = hardware_config.get('row_addr_type', 0) - options.multiplexing = hardware_config.get('multiplexing', 0) + options.row_address_type = 0 + options.multiplexing = 0 options.disable_hardware_pulsing = True # Reduce flickering options.show_refresh_rate = False - options.limit_refresh_rate_hz = hardware_config.get('limit_refresh_rate_hz', 120) # Higher refresh rate + options.limit_refresh_rate_hz = 120 # Higher refresh rate - # Runtime configuration - runtime_config = self.config.get('runtime', {}) - options.gpio_slowdown = runtime_config.get('gpio_slowdown', 1) # Reduce slowdown + # Minimal GPIO slowdown for better performance + options.gpio_slowdown = 1 # Initialize the matrix self.matrix = RGBMatrix(options=options) @@ -153,6 +152,9 @@ class DisplayManager: # Draw main text self.draw.text((x, y), text, font=font, fill=color) + + # Update the display + self.update_display() def draw_scrolling_text(self, text: str, scroll_position: int, force_clear: bool = False) -> None: """Draw scrolling text on the display."""