Skip to content

0ll0wain/Synthesizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synthesizer (Drum Machine Project)

This repository contains a ESP-32 based Syntheziser as a proof of concept board for the extension of the IES Elctronics Lab Drum Machine. The Project contains:

  • Hardware design files (KiCad schematics, PCB, symbols, footprints, and 3D models)
  • Firmware experiments for an ESP32-S2 using PlatformIO and Arduino framework
  • Production export files (BOM, pick-and-place, netlist)
  • LTspice simulation files for signal and quantization analysis

PCB Render

Project Structure

  • Synthesizer.kicad_pro, Synthesizer.kicad_sch, Synthesizer.kicad_pcb: Main KiCad project
  • Power.kicad_sch, Human_IO.kicad_sch: Additional schematic sheets/modules
  • DrumMachine.pretty/, Sythezizer.pretty/: Custom footprint libraries
  • 3D Modells/: 3D models used by KiCad
  • Code/Synthesizer/: ESP32-S2 firmware workspace (PlatformIO)
  • production/: Manufacturing exports (bom.csv, positions.csv, designators.csv, netlist.ipc)
  • Simulations/: LTspice simulation setups and results

Hardware

Tooling

  • KiCad 8 or newer recommended
  • Optional: LTspice for simulation files in Simulations/

Open the PCB Project

  1. Open KiCad.
  2. Open Synthesizer.kicad_pro.
  3. Verify custom footprint libraries are available:
    • DrumMachine.pretty/
    • Sythezizer.pretty/
  4. If 3D models are missing, map paths to files in 3D Modells/.

Fabrication Outputs

Manufacturing data for production via JLC PCB is available in production/:

  • bom.csv: Bill of materials
  • positions.csv: Pick-and-place coordinates
  • designators.csv: Reference designator mapping
  • netlist.ipc: IPC netlist export

Firmware (ESP32-S2)

Firmware code is in Code/Synthesizer/ and uses PlatformIO. The Project is intended for 3rd Semester Students, therefore the Code is intended to be simple and easy to undesrtand without prior Coding experience.

Requirements

  • VS Code + PlatformIO extension
  • Or PlatformIO Core CLI (pio) installed
  • USB data cable for ESP32-S2 board

Platform and Board Settings

From Code/Synthesizer/platformio.ini:

  • Platform: espressif32
  • Framework: arduino
  • Board: esp32-s2-saola-1
  • Monitor/upload speed: 460800
  • USB CDC enabled on boot (ARDUINO_USB_CDC_ON_BOOT=1)

A custom board file also exists at Code/Synthesizer/boards/Synth.json.

Build and Upload

From Code/Synthesizer/ run:

pio run -e onetimeConversionTimeDelta
pio run -e onetimeConversionTimeDelta -t upload
pio device monitor -b 460800

If auto-port detection fails, set upload_port and monitor_port in platformio.ini.

Notes

  • Most source files in src/ are standalone experiments/tests.
  • test-DAClib pins the platform to a specific platform-espressif32 release URL in platformio.ini.
  • One source name differs by case (cosineTest.cpp in folder vs CosineTest.cpp in config). If your OS/toolchain is case-sensitive, align these names.

Simulation

Simulations/ includes LTspice assets such as:

  • QuantizationPWM.asc
  • FFT/log/raw outputs for waveform and quantization studies

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors