SoundBox
The G-Kit SoundBox is a standalone MP3 player kit built around the Glyph Development Board designed to capture the charm of a vintage boombox while showcasing the power and flexibility of modern modular electronics.

This project combines digital audio, intuitive UI design, and hands-on hardware interaction in one compact build. It’s not just a music player it’s an educational platform that teaches you the fundamentals of audio electronics, embedded programming, and system design, all while delivering a fun, nostalgic experience.
Learn Embedded Audio Design
- At its heart, the SoundBox is a hands-on journey into audio technology. You’ll explore how digital audio is processed, transmitted, and amplified step by step:
- Audio Pipeline: From MP3 decoding → I²S transmission → DAC/amplifier → speaker output.
- I²S Audio Interface: Learn how digital sound data flows from the ESP32 to a dedicated audio chip.
- Real-Time Feedback: Watch track metadata, elapsed time, and progress sync instantly on the OLED display.
- Best part, You can do all this within Arduino!
Whether you’re a beginner learning the basics of digital sound or an advanced user exploring embedded DSP, SoundBox provides a tangible way to learn how sound systems actually work.
Inspired by the Classics
- The SoundBox is designed to replicate the look and feel of a classic boombox, reimagined with modern components.
- The speaker and button placement mirror traditional stereo layouts giving a tactile, balanced aesthetic.
- Each button has a distinct function and feedback, evoking the experience of operating vintage hardware.
Key features
Audio Features
- MP3 / WAV Playback from SD card.
- Track Navigation: Next, Previous, Play, Pause.
- Non-blocking Audio Loop → keeps UI and buttons responsive.
- Track Metadata Handling: Displays song title & duration.
Display & UI Features
- High-contrast and simple to use OLED UI with U8g2lib.
- Track Info Screen: Title, total time, play/pause state.
- Volume Display (0–100%).
- UI Navigation System (prev/next/select).
Controls
- 3 Physical Buttons (Prev, Play/Select, Next).
- Debounced Input using OneButton library.
- Expandable → supports long press, double-click, etc.
- Volume control from Range: 0–100%.
- UI & Player Sync → ensures displayed volume = actual volume.
Build Guide
Build your SoundBox! below you'll find a clear, step-by-step guide that walks you through everything from wiring and flashing the firmware to assembling the case and first power-on tests. Follow each step in order, take care with pin connections and polarity, and code snippets as you go; by the end of this guide you’ll have a fully functional, customizable vintage-style boombox powered by the Glyph ecosystem.
Step 1: Hardware Required
Get Your Electronics Ready
Unbox and get your hardware ready!Make sure it checks with the Hardware required as mentioned below.
| S. No. | Image | Component Name | Function |
|---|---|---|---|
| 1 | ![]() | GLYPH | Main Microcontroller (can be GLYPH C3 / GLYPH C6 / GLYPH S3) |
| 2 | ![]() | GMOD-NAU8325 | I2S CODEC + 3W AMP |
| 3 | ![]() | 1.3inch SH1106 OLED | Visual output (text, status, data display) |
| 4 | ![]() | GMOD-MicroSD | Audio file storage |
| 5 | ![]() | G-Kit Soundbox | Base board for the soundbox |
| 6 | ![]() | 4Ohm 3W Speaker | Audio output for sound/playback |
| 7 | ![]() | Battery | Provides power to the entire system |
| 8 | ![]() | Switch | Power control switch for the device |
| 9 | ![]() | Buttons | User input for control and commands |
| 10 | ![]() | Type C USB | USB connectivity Extender |
Get Your 3D printed parts ready
Make sure you 3d printed every parts that's needed for the assembly if you haven't bought it as a part of the kit. You can check download the files here.
| S. No. | Image | Part Name | Function |
|---|---|---|---|
| 1 | ![]() | Soundbox-shell | This enclose the entire circuit & speaker system |
| 2 | ![]() | Heat-inserts | Added heat-inserts to the soundbox shell |
| 3 | ![]() | Custom Button Caps | Engraved functions on top the caps |
| 4 | ![]() | Speaker-Mount | Speaker Mount |
| 5 | ![]() | Back-plate | back-plate to cover the soundbox shell |
| 6 | ![]() | Handle-holder | Handle-holder which attaches to the soundbox shell |
Step 2: Pin Configuration:
This table gives a overview of how the each module is connected to the controller (Assuming it's GLYPH C6) internally on the G-Kit base board.
| Component | Function | GlyphC6 Pin (GPIO) |
|---|---|---|
| SD Card | CS | 17 |
| MISO | 23 | |
| MOSI | 22 | |
| SCK | 21 | |
| Audio Codec (I²S) | MCLK | 16 |
| BCLK | 15 | |
| WS (LRCK) | 14 | |
| DOUT | 18 | |
| Buttons | Previous | 3 |
| Play / Select | 2 | |
| Next | 9 | |
| OLED Display (I²C) | SDA | 4 |
| SCL | 5 |
Step 3: Circuit Diagram
You can follow the below circuit and build the Soundbox by yourself with a breadboard and few jumpers. Without needing to use the PCB.

Step 4: Assembly
This sections walks you through the complete assembly of your G-kit SoundBox, from preparing components to final enclosure fitting. Follow each step carefully and refer to the provided images for visual guidance. By the end, you’ll have a fully functional SoundBox
Make sure to follow the steps from Step-5 & Step-6 starting installation. This will make sure GLYPH has necessary firmware to run the soundbox features and also tests all the electronics are working.
Start with the Button
Place the 3d printed button cap on top of G-MOD 3x1 Key Array. It won't be a snap fit but this should be fine and it works great without needing to add glue or adhesive.
The enclosure is printed to tight tolerances, so components fit snugly and the assembly feels solid once completed.
So, before proceeding, check that all mounting points and openings are clear of print residue.
The button array with the 3d printed cap will snap-fit on the extrusion (shown below) to hold the button array in place.

Make sure to slowly algin the mounting holes on the button array to the snap fit point's on the enclosure, also while guide the button in a way that, the header is facing away from the soundbox (or facing towards you).

You might have to apply some pressure until the mounting holes snap fit, be gentle and apply pressure on one side. When one side is fitted in place. Apply pressure on the other side to have the entire button array on place.
The snap fit might be too perfect and can hold the button array very firmly, so it can be difficult to remove once the button array is in place.

Double checke if the button is fit well and the header pin is facing towards you, This is crcuial as this will be acessed by the G-kit base board.

These steps should make sure you have the buttons installed correctly.

Installing the Speakers
To mount the speaker, we have designed a 3d printed adapter which hold the speaker to the enclouser.
This adapter would hold the speaker perfectly in place, while not distrubting the wiring.
Now align this speaker adapter correctly to the mounting points on the enclouser as shown below. Just follow this for both the speaker.

Once, the alignment is done correctly use M3 screw given in the kit to fasten in place.

Once, the fastening is done for the speaker, make sure the speaker wire connector are facing the right direction(toward the display). This will make it easier for connecting the speaker to the G-kit base board.

Installing the OLED
Start with assembling the OLED with 10mm nylon standoff. This will hold the OLED firmly to the PCB.


Connect the OLED display with the base board.

align the OLED correctly so the stands off can be installed correctly. You don't need a bolt on the other side to keep the standoff, as this will be held by the base board and also supported by the 3d printed parts that's on the enclouser.
Installing the base board
Once the display is placed, place the base board into the encoluser
while making sure the header on the top the base board fit's onto the button that we place earlier.
Once everything seems to be in place, fasten them in place using the M2.5mm bolt.

Next add the toggle button which, will handle the turn on and turn off feature of the soundbox!

Connect the connectors from the speaker and toggle switch to the right location on to the base board as shown in the

The battery is carefully selected based on required voltage, capacity, and size to ensure the Soundbox operates efficiently and fits properly within the case.


Apply double sided tape on the battery to make sure it doesn't move around when it's placed inside the soundbox.
Place the battery as shown in the below picture.

Installing the Audio CODEC
Place the audio codec module onto the G-Kit as shown.

Installing the SD Card
Place a 8mm nylon spacer on the G-kit PCB to support the GMOD-microSD.
Followed by the nylon spacer place the GMOD-microSD card module and check if the SD card is accessible outside the box.
Insert the SD card with pre-loaded music/songs into the SD-Card Module.

Installing the USB
Insert the Type C USB from outside.

Make sure it fits snugly on the grove made for the C-port on the 3d model.
Add a 2mm bolts and nuts to the Type C USB port to hold it together with the 3d model.
Once the Type C in place, solder the wires to the GLYPH board (Black -> GND | Red -> USB)
That's it for the electronics assembly! Now you can finish it off by adding the back panel.
This is how the Soundbox looks after full assembly.
You can start the soundbox, just by toggling the switch!
If all the steps are followed correctly, after few seconds you should see the soundbox bootup.
Now you can navigate and select the songs that you would like to play!

Step 5: Code Setup
- Open Arduino IDE.
- Make sure to install the library
- Copy and paste the following code into the Arduino IDE:
The code is little complex and broken down into multiple files. You can download the code from our GITHUB REPO
Step 4: Upload the Code
- Connect the Board
- Connect your GLYPH board to your computer
- Select the Board and Port
Do the following settings in your Arduino IDE,
Tools > Board > esp32 > Pcbcupid GLYPH C6
For the Pcbcupid Glyph C6 to appear under Tools > Board > esp32, the esp32 board version installed in the Arduino IDE should be greater or equal to 3.1.0.
Tools > Portand select the port connected to your GLYPH.Tools > USB CDC on Boot >Enabled
If USB CDC on BOOT not enabled, you won't be seeing any serial data on Arduino IDE.
-
Upload the Code
- Click the upload button (➡️ icon) or use the shortcut
CRTL + Uin Arduino IDE to upload the code to the board.
- Click the upload button (➡️ icon) or use the shortcut
Step 5: Observe the Output
- Expected Visual + Audio Behavior
- Music playback from SD card over I2S DAC.
- OLED UI with track title, duration, elapsed time, volume.
- Buttons for control (Prev / Play / Next / Vol Up / Vol Down).
- UI updates in sync with audio (progress bar, elapsed time).















