System Integration
This week focused on the integration and planning of all the different parts of the project ranging from: User Flow, Functionality, Design, Production, Testing, Failures. I have tried to decide and list as many fixed processes and features as possible.

User Flow
The user interaction with Symphoni begins by determining whether the NFC "record" has already been written with a Spotify playlist or track link. If a record has already been written, the user can simply place it on the Symphoni player. The embedded system reads the NFC tag, retrieves the Spotify link, and initiates playback through a connected Bluetooth speaker. Playback controls such as play/pause, skip, and volume adjustment can be handled directly through capacitive buttons or sliders integrated into the player's interface, offering a tactile and intuitive experience.

If the record is blank or unwritten, the user must first open the Spotify app on their mobile device and locate the desired track, album, or playlist. They can then either copy the share link or use Spotify's “Share to App” feature to send it directly to the Symphoni companion Flutter app. Within the app interface, the user pastes or confirms the link and then writes it to the NFC record by bringing it close to the phone. Once the record is written, it is ready for use and can be placed on the player to function as described earlier.
This simple flow bridges the digital and physical worlds—turning Spotify playlists into tangible objects that trigger music playback through physical interaction. The system is designed to be modular and user-friendly, with potential expansion features like magnetic levitation for visual appeal and a multifunctional display unit that may also serve as a wireless charging dock for smartphones.
Functionality Diagram
The Symphoni system is architected around two main subsystems: the primary device and the Bluetooth speaker module, both coordinated via ESP32 WROOM microcontrollers. The central device integrates a rotary encoder that serves as a mode selector, an NFC tag reader/writer to read records, a DC motor for motion (potentially for rotation or levitation), and an SPI TFT display for visual feedback. These components are managed by an ESP32 WROOM, which acts as the main controller of the hardware unit. A Flutter mobile app interfaces with this system via HTTP requests, allowing users to write playlist data to NFC records and send control commands to the player.

The Bluetooth speaker module is designed to receive audio data from the mobile or any spotify connect device. It is equipped with a Bluetooth receiver and an audio amplifier, which are also controlled by an ESP32 WROOM. This module can be powered independently or through the main device, depending on the design choices made during the development phase.
On the speaker side, another ESP32 WROOM handles audio playback and user inputs. It receives control signals from physical buttons (for previous, play/pause, next, and input selection) and a volume control encoder. Audio output is handled via an I2S DAC that feeds into an amplifier and subsequently a speaker, delivering high-quality sound. The two ESP32 modules communicate wirelessly to synchronize playback and control operations, enabling a seamless and interactive user experience that bridges mobile app control, physical interaction, and digital music playback.
Schedule
The schedule for the project is divided into three main phases: Conceptual, Detailed, and Final. The first phase focuses on defining the core features and user experience, including NFC integration and basic audio playback. The second phase involves detailed design and prototyping, including the modular display and wireless charging capabilities. The final phase will focus on testing, refinement, and preparing for production.

Bill of Materials
Item | Quantity | Price | Link |
---|---|---|---|
PCM5102 I2S DAC - 3.5mm Stereo Out | 1 | 500 | hubtronics |
TPA3116D2 Audio Dual Channel Stereo Digital Amplifier Board | 1 | 417 | Robu |
8 Ohm Speakers | 2 | ||
Sliding Adjustable Potentiometer Module 10k | 3 | 120 | Robu |
Rotary Encoder Module | 1 | 50 | Robu |
ESP32-WROOM-32 | 1 | 500 | Robu |
Item | Quantity | Price | Link |
---|---|---|---|
ESP32-WROOM-32 | 1 | 500 | Robu |
RC522 Module with RFID Card and Tag | 1 | 285 | Amazon |
Rotary Encoder Module | 1 | 50 | Robu |
DC Motor | 1 | ||
2.8" SPI TFT Display | 1 | 800 | Robu |
Mechanical Switch Buttons | 4 | ||
WS2812B LEDs | 10 | ||
Buck Converter | 1 | Robu |
Functions
The Symphoni system is designed to be modular and user-friendly, with a focus on seamless interaction between the hardware and software components. The main functions include:
- Bluetooth Audio Playback: The system connects to Bluetooth speakers for audio output.
- Spotify Playback using Records: Users can play Spotify tracks through NFC-enabled records.
- NFC Tag Reading: The system reads NFC tags embedded in records to retrieve Spotify links.
- Playback Controls: Users can control playback and volume through buttons and knobs.
- Frequency Modualtion The slider potentiometers allows users to manipulate bass,mid and treble
- Track Display The display serves as a visual interface to view track info
- Mode Control The rotary encoder allows users to select different modes or tracks.
- Companion App The Android App allows to write the Records with any track, albums or playlists.
- Wireless Charging: The display unit can wirelessly charge compatible devices.
- NFC Carder Reading
- Fetching and Playing from Spotify
- Bluetooth Speaker Functionality
- Flutter Companion App
- Plywood Kerf Bending
- Speaker Enclosure Design
- Modular Display
- Wireless Charging
- Knobs and Sliders
- Levitation
- MCU Pins: The pins required may outgrow XIAO ESP32C6. That's why I planned to use ESP32-WROOM-32 or use I2C expanders.
- Display Dock: Modular display doubles as wireless phone charger.
- Levitation: Start with DC motor. Leave physical space for magnetics in later spirals.
Design
Symphoni is a modular, NFC-enabled turntable that levitates records. It features a wireless charging display and a capacitive touch interface. The design emphasizes user experience, with seamless NFC interactions and clear track information.
I have created an mood/inspiration board for my design and included elements that I want to include in my project


The inspiration board consists of various elements I want in my project: Color Palette, Texture, Dot LED Style Matrix, Display Style, Buttons and Slider Interfaces
I wanted to achieve the Dot Matrix Display Style for my Speaker so I tried a SVG Generator called Vertigo for this
Vertigo: Dot Matrix SVG GeneratorI uploaded the 'SYMPHONI' text on the SVG Generator and got the required effect and modified it in inkscape and used the Trotec Laser Cutter to get the front panel

The above front panel layout is what the user sees, the SYMPHONI logo will be lit using a backlight while the round areas will hide the speakers yet allow audio transmission through them. This is something that I wanted in my product

This layer allows for the speakers to be mounted on them and then the front panel can be placed on top of it.

Basic Button Layout
The top view of the Record Player would look something like this










What has been Done
So far, I have tested the following:
What needs to be done
In the next few weeks, I will be focusing on the following: