Multi-app-hub-control
ย
I initially set out to build a simple Pomodoro timer to boost my productivity (with an endless pool of projects to tackle). But after doing some research, I realized it wasnโt exactly groundbreaking, everyone had already built one or better, knob-based devices are especially popular in the maker community.
So, in search of a reason to stand out in this vast sea of incredible projects, I decided not to focus solely on functionality. Instead, I aimed to create a reusable and scalable framework for knob-based device.
If you ever use this to build your own embbeded device, Iโd be genuinely thrilled!
Core Components
- Hardware Abstraction Layer (HAL): Clean interfaces for display, encoder, RGB, buzzer
- Services: High-level abstractions (RGB patterns, tune player, display management)
- Apps: Self-contained applications with standardized lifecycle
- Handlers: Coordinate between hardware events and app logic
- Service Registry: Dependency injection system for shared resources
Architecture & Design Patterns
- SOLID Principles: Interface segregation, dependency injection, single responsibility
- Factory Pattern: Hardware abstraction and initialization
- Observer Pattern: Timer-based update system
- State Machine: Complex UI state management (see PomodoroSettingsFSM)
Embedded Systems Expertise
- Interrupt Handling: Proper ISR implementation with flags
- Real-time Coordination: Timer-based multi-service orchestration
- Hardware Abstraction: Clean separation between hardware and business logic
- Memory Management: Efficient resource usage on constrained hardware
Modern C++ Practices
- RAII: Resource management through constructors/destructors
- Templates & Inheritance: Clean polymorphic interfaces
- Const Correctness: Proper use of const methods and parameters
- Type Safety: Strong typing for display data and configuration
Communication Protocols
- SPI: TFT display communication
- I2C: Sensor integration ready
- Bluetooth Low Energy: HID device implementation
- PWM: RGB LED and buzzer control
Genesis Knob System Architecture
Professional Embedded Systems Platform with Enterprise-Grade Design Patterns
Application Layer
๐ Pomodoro Timer
Real-time productivity timer with FSM implementation and persistence
๐Volume Controller
BLE HID implementation with cross-platform compatibility
๐ Home Navigator
Dynamic app launcher with circular UI patterns
Service Layer
๐บDisplay Service
Hardware-accelerated graphics with smooth animations
๐จRGB Service
Multi-channel PWM with gamma correction
โชTune Service
PWM audio synthesis with dynamic intervals
๐กHID Service
Professional BLE stack with security
Handler & Orchestration Layer
โฑ๏ธTimer Handler
Hardware timer ISR with microsecond precision scheduling
๐๏ธEncoder Handler
Interrupt-driven input with debouncing and gesture recognition
๐๏ธService Registry
Dependency injection with lifecycle management
Hardware Abstraction Layer (HAL)
๐ฅ๏ธDisplay Driver
TFT_eSPI integration with hardware acceleration
๐Rotary Encoder
Quadrature decoding with interrupt optimization
๐กPWM RGB LED
Multi-channel PWM with high-resolution output
๐PWM Buzzer
Audio synthesis via high-frequency PWM modulation
Architecture Strengths for Engineering Applications
๐๏ธ Professional Design Patterns
SOLID principles, Factory pattern, Service-Oriented Architecture, and Dependency Injection demonstrate enterprise-level software engineering expertise.
โก Real-Time Performance
Hardware timer ISRs, deterministic scheduling, and microsecond precision timing suitable for robotics and industrial control applications.
๐ง Hardware Abstraction
Clean HAL implementation enables rapid prototyping and hardware platform migration - critical for product development cycles.
๐ Multi-Protocol Communication
BLE HID, SPI, I2C, and UART implementations demonstrate versatility in communication protocol integration.
๐ง Advanced State Management
Hierarchical FSM implementation with guard conditions and event-driven architecture applicable to robot behavior programming.
๐ Scalable Architecture
Modular design supports rapid feature addition and system expansion - ideal for evolving product requirements.

Prince
September 12, 2025 at 1:35 pmI am happy to see the level of details presented on your journey making this project !
High level enough for any public to understand what is it that you are building
and at the same time,
detailed and long enough so that anyone can probe that you understand what you are building and what skills you are able to use.
Nice job !