The Very draft idea
- Jan: It will be a box, to put some photos or cards in it. The box could play some music or sound.
- Feb: To compare with laser cutting and 3D printing, mostly 3D printing seems better. I haven't made the decision yet, but I will not use plywood, if cut it with laser cutter, the smell and the surface will be not good.
- Mar: I will use XIAO ESP32-C3 to control the box, RFID will be the module to trigger the music or sound.

Product Philosophy (Why?)
In April, I have more ideas about the final project.
I will call it "Voice Keeper", it will be an audio photo album.
What is Voice Keeper?
Voice Keeper emerges from a simple observation: we have saved thousands of photos in cloud albums, yet we have lost the precious sounds associated with them—grandma's voice calling your nickname, a child's first "I love you," the ambient sounds of a street corner during a trip. Voice Keeper believes that sound is the time capsule of memory, capable of evoking emotions more instantly than images alone.Voice Keeper is not just a storage device; it is a physical vessel for emotional memory. We prioritize the tactile ritual of handling physical photographs while using invisible digital encoding to bridge the gap between the tangible and the auditory. By avoiding screens and cloud dependencies, we create an intimate, offline experience that respects privacy and fosters intergenerational connection.
Target Users
- New parents documenting their children's growth
- Adults living away from family preserving voices of elderly relatives
- Memory-keepers who cherish physical photographs over digital albums
Core Concept: The Physical Voice Vessel
Voice Keeper is a tangible audio playback station for physical photographs. Users place printed photos onto a reading platform; the device recognizes a color-coded strip on the photo's edge (or back) and plays associated audio files. There are no electronic screens, no recording functions, and no cloud connectivity—just the warmth of paper and the intimacy of sound.Technical Implementation
Color Encoding System
- Quinary (Base-5) Mechanical Computing
- Color Values: Black(0), Blue(1), Green(2), Red(3), White(4)
- Capacity: 4 sensor positions × 5 colors = 5⁴ = 625 unique combinations
- Code Location: 1cm strip at the bottom edge of photos, divided into 4 color blocks (8mm×8mm each)
- Advantage: 625 slots far exceed typical family active albums (~100 photos), leaving room for expansion while maintaining human-readable physical encoding
Sensor Configuration
- 4× TCS34725 Color Light-to-Digital Converters with IR filter
- I2C Management: TCA9548A 1-to-8 multiplexer handles the 4 sensors (TCS34725 has only 2 address variants; multiplexer enables clean bus management)
- No Active Illumination: Relies on ambient light with software calibration algorithms to reduce power consumption and hardware complexity


Input Methods (Parallel Architecture)
Voice Keeper accepts two simultaneous input methods without mode switching:-
A. Color Recognition (Automatic)
- User places photo in the inclined tray, color strip covering the 4 sensor windows
- Presses the Play/Recognition button (mechanical tact switch)
- System activates I2C multiplexer, polls 4 sensors sequentially (~100ms total)
- Calculates ID using weighted quinary: ID = (C1×125) + (C2×25) + (C3×5) + (C4)
- DFPlayer Mini retrieves xxx.mp3 from SD card and plays through 3W speaker B. Keypad Input (Manual Fallback)
- 3×4 Matrix Keypad (0-9, *, #) embedded in the wooden base
- Direct Entry: User types 3 digits (000-624) and presses * to play, or # to clear
- Parallel Operation: Works even while photo is present; useful for quick access without retrieving the physical photo
Interaction Flow
Place Photo → [Optional: Type ID on Keypad] → Press Play Button →[If Color Valid] → Play Audio (Green LED)
[If Color Invalid] → Flash Red → User can retry or use Keypad
Electronics Architecture
Block Diagram
[Seeeduino XIAO / ESP32C3 or S3] │├─ I2C Bus ─┬─ [TCA9548A Multiplexer] ─┬─ Ch0: [TCS34725 Sensor 0] (Color Bit 0, 5³)
│ │ ├─ Ch1: [TCS34725 Sensor 1] (Color Bit 1, 5²)
│ │ ├─ Ch2: [TCS34725 Sensor 2] (Color Bit 2, 5¹)
│ │ └─ Ch3: [TCS34725 Sensor 3] (Color Bit 3, 5⁰)
│
├─ UART(RX/TX) ─── [DFPlayer Mini] ── [2W Speaker]
│
├─ Digital I/O ─ [3×4 Keypad Matrix] (7 pins: 3 rows + 4 columns)
│
├─ Digital I/O ─ [Play Button / Touch Sensor]
│
└─ PWM ──── [RGB Status LED] (WS2812B or discrete RGB, optional)
Power Management
Supply: Li-ion batteries (3.7V)Charging port with USB-C
Voltage Regulation: need 5V for logic