v2.1 "OTD" and bug fixes
Summary
- A lot of bug fixes and some formatting improvements
- OTD = "Of The Day" , more on that in a bit
- A ton of font refactoring because bitmap glyphs are hard
- Stock Chart configurations (scroll speed, scroll display, toggle chart)
- Small font and placement adjustments across several displays
OTD = Of The Day Display
π Key Features
- π Multiple Categories: Run multiple "of the day" displays simultaneously (Word of the Day, Language Learning, Bible Verses, etc.)
- π Smart Rotation: Two-level rotation system with subtitle/description alternation and category switching
- π Daily Content: Each day shows different content based on the day of the year (1β366)
- βοΈ Highly Configurable: Customize display intervals, rotation timing, and content categories
π What's Included
Core Implementation
src/of_the_day_manager.py: Main manager class handling display logic, rotation, and content loadingof_the_day/OF_THE_DAY_GUIDE.md: Comprehensive documentation and setup guide
Sample Content
of_the_day/word_of_the_day.json: 366 vocabulary words with definitions and examplesof_the_day/slovenian_word_of_the_day.json: 366 Slovenian words with English translations
Configuration Integration
- Updated
config/config.jsonwith"of_the_day"section - Integrated with
src/display_controller.pyfor seamless display rotation - Added to display duration management system
ποΈ Configuration
Add this to your config/config.json:
{
"of_the_day": {
"rotation_interval": 30,
"subtitle_interval": 10,
"categories": ["word_of_the_day", "slovenian_word_of_the_day"]
}
}π Rotation System
The system features a sophisticated two-level rotation:
- Subtitle/Description Rotation: Within each category, alternates between subtitle and description every 10 seconds
- Category Rotation: Switches between different categories every 30 seconds
Example Display Flow:
[Word of the Day] β Subtitle β‘οΈ Description β‘οΈ [Slovenian Word of the Day] β Subtitle β‘οΈ Description β‘οΈ ...
π Data Format
Each category uses a JSON file with this structure:
{
"1": {
"title": "EXAMPLE",
"subtitle": "Definition or Translation",
"description": "Full explanation or use case"
}
}π― Use Cases
Educational Content
- Vocabulary Word of the Day: Expand your vocabulary with 366 carefully selected words
- Language Learning: Learn new words in different languages (Slovenian included)
- Math Problem of the Day: Daily mathematical challenges
- Science Fact of the Day: Interesting scientific facts and discoveries
Inspirational Content
- Bible Verse of the Day: Daily scripture and spiritual guidance
- Quote of the Day: Motivational and inspirational quotes
- Affirmation of the Day: Positive daily affirmations
- Meditation of the Day: Daily meditation prompts
Professional Development
- Programming Tip of the Day: Daily coding tips and best practices
- Business Quote of the Day: Business wisdom and insights
- Leadership Lesson of the Day: Leadership and management insights
π οΈ Technical Features
- Performance Optimized: Data files loaded once at startup, minimal display updates
- Error Handling: Comprehensive logging and error recovery
- Font Integration: Uses custom BDF fonts for optimal LED matrix display
- Text Wrapping: Intelligent text wrapping for long descriptions
π Documentation
Complete documentation is available in:
of_the_day/OF_THE_DAY_GUIDE.md
Includes:
- Setup instructions
- Configuration options
- Custom category creation
- Troubleshooting guide
Always a work in progress, let me know if something is broken or behaving unexpectedly.