Pocket Synth V1

by Arnov Sharma in Circuits > Audio

13083 Views, 84 Favorites, 0 Comments

Pocket Synth V1

07.gif
06.gif
IMG_20241015_142327.jpg
IMG_20241015_142432dsdsfg.jpg

Greetings everyone and welcome back, This is the Pocket Synth, a do-it-yourself compact Formfactor synth constructed with 3D-printed components and Seeed's XIAO expansion board.

The core of this project is the Seeed XIAO ESP32 S3 microcontroller board, which is placed in a 3D printed frame along with an XIAO expansion board and a button board. Because of its built-in battery, this solution is both convenient and completely portable.

This project uses eight buttons, and the buzzer on the XAIO expansion board is utilized to output the synth sound.

This Instructables is about the complete build process of this project, so let's get started with the build.

Supplies

The following components are required for this project:.

  1. XIAO ESP32 S3 DEV Board
  2. XIAO Expansion Board
  3. Push Button 12x12
  4. Prototyping board
  5. 3D Printed Parts
  6. 3.7V LiPo Cell

Design

08.gif
02.gif
01.PNG
02.PNG
03.PNG
04.PNG

In order to design this project, we first imported the 3D model of the XIAO expansion board, button board, and 3.7V battery. We then arranged these components so that we only needed to model the two frames that connect the expansion board and button board and maintain the battery lock in place.

Two frames with mounting holes for the button board and expansion board were modeled.

We exported the frame mesh files and 3D printed them using Black PLA with a 0.4mm nozzle with 0.2mm layer height.

XIAO ESP32 S3 and XIAO Expansion Board

IMG_20241015_142758.jpg
IMG_20241015_142753.jpg
IMG_20240319_220754 - Copy.jpg

We're using the XIAO ESP32 S3 Development Board, which, paired with the XIAO extension board manufactured by Seeed Studio, is the heart of this project.

The ESP32S3 32-bit dual-core Xtensa processor chip, which runs at up to 240 MHz, is integrated inside the XIAO ESP32 S3. It supports Arduino and MicroPython and has several development interfaces.

It supports 2.4GHz Wi-Fi and BLE dual, has 8 MB of PSRAM and 8 MB of FLASH, and has an SD card connector for external 32 GB FAT memory.

The expansion board's OLED screen and the onboard buzzer, which is coupled to the XIAO's I/O Pin D3, are being used in this project.

Furthermore, wires will be used to connect the XIAO extension board to a custom-built button board.

Power Source

IMG_20241015_104953.jpg
IMG_20241015_105434.jpg

We are utilizing a 3000mAh 3.7V LiPo cell that was recovered from an old cell phone to power the XIAO setup. In order to enable the user to run the XIAO using the attached lithium cell and even charge it through the XIAO microcontroller, we linked the positive and negative terminals with the battery connector found on the XIAO expansion board, which has a lithium cell charging IC.

Button Board

IMG_20241014_184920.jpg
IMG_20241014_184914.jpg
IMG_20241014_185527.jpg
IMG_20241015_111622.jpg
  1. We used one of our previously produced prototyping boards to prepare the button board, and eight push buttons measuring 12 mm by 12 mm were placed on the board.
  2. We solder each button terminal from the back and secure them in position.

Construction- Wiring

AK1.jpg
IMG_20241015_112231.jpg
  1. We began the wiring of this project by first joining the GND terminals of every button, which will be connected to the expansion board's GND.
  2. We next connected each switch's I/O pin by following the wiring diagram. We use 8 GPIO as we are using 8 switches.
  3. The expansion board's battery connector was soldered with battery terminals.

CODE

01.gif

Here's a short breakdown for the code.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

These libraries are included to control the I2C communication (Wire.h) and to interface with the SSD1306 OLED display (Adafruit_GFX.h and Adafruit_SSD1306.h).

const int buttonPins[] = {0, 1, 2, 6, 7, 8, 9, 10}; // Button pins
const int buttonCount = 8;
const int speakerPin = D3; // Speaker pin

const int frequencies[8] = {523, 587, 659, 698, 784, 880, 988, 1047}; // C5 to C6

This specifies the GPIO pins used for buttons and the speaker. Also defines the frequencies corresponding to each button, representing musical notes from C5 to C6.

Downloads

Final Assembly

03.gif
04.gif
05.gif
  1. Following the completion of the electronics and coding, we began the main assembly procedure, which begins with the battery positioned between the two frames. The Xiao expansion board is then installed in its location, and it is fastened in place with M2 screws.
  2. The button board is then positioned and fastened in place with M2 screws.

The assembly process is now complete.

Result

Xiao Synth Piano

Thus, this project's end result is a functional synth that works like a standard synth yet is incredibly compact and portable.

This project's size and the fact that we were able to combine everything into a very small package are its best features. However, there are some issues with this setup, such as the output buzzer's low volume.

Additionally, we are using an expansion board, which takes up space and has other parts like an RTC and SD card reader. To further reduce the project's size, we can create a customized board, which will be significantly smaller. This is what version 2 will be focusing on.

All the details regarding this project, including files, are attached, which you can download.

Leave a comment if you need any help regarding this project. This is it for today, folks.

Thanks to Seeed Studio Fusion for supporting this project.

Seeed Fusion PCB Service offers one-stop prototyping for PCB manufacture and PCB assembly, and as a result, they produce superior-quality PCBs and fast turnkey PCBAs within 7 working days.

You guys can check them out if you need great PCB and stencil service for less cost and great quality.

And I'll be back with a new project pretty soon!