Skip to the content
PCBKitNew board
2 layers55 × 100 mmESP32AY, the printed circuit board in 3D

ZxPod - ESP32 based AY multiformat player

Size
55 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
113
Nets
156
Pads
504
Tracks, vias
1,366, 241
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
26 Jun 2024
Updated
2 Nov 2026

Overview

ESP32AY is an open-source printed circuit board by djspawnbrest, from the djspawnbrest/ESP32AY repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 55 × 100 mm with 113 parts on 156 nets, routed with 1,366 tracks and 241 vias.

It is built around the ESP32-WROOM-32, CH340G and 74HC595, with the AMS1117-3.3, SM5308 and TPA6130A2RTJTG4 among its other parts. Its parts include 42 resistors, 34 capacitors, 9 ICs, 6 switches and 4 diodes. It belongs with the ESP32 boards of this library.

Main components

9

README

README.md

ZxPod - multiformat Turbo Sound player

ESP32 based AY Turbo Sound multiformat player

Fast flash firmware avaliable on Alex Spawn OTA web page

Starting with firmware version 3.41 - added support for external DAC's - read External DAC

IMPORTANT:

Firmwares from version 3.4 supports only PCB revision C! But you can soldering upgrade revision A and B to C:

Cut JP1 jumper on revisions A and B first!

From rev.A to B and C:

You need to cut the input track on the resistor R33(see Pic.2) and solder the wire from the ESP32 (see Pic.1) to the cut contact of the resistor. See the images below. Fig. 1 Fig. 2 Fig. 3 Fig. 4

From rev. A and B to C:

You need to cut the tracks as shown in Figure 5 (red cut lines), then carefully strip the tracks from the solder mask and solder the wires (green lines) to the ESP32. Fig. 5

Features

Supported formats:

  • .ayl - Ay_Emul by Sergey Bulba own playlist format
  • .pt1 - Pro Tracker v1 file format
  • .pt2 - Pro Tracker v2 file format
  • .pt3 - Pro Tracker v3 (include Turbo Sound on two AY chips) file format
  • .stc - Sound Tracker file format
  • .stp - Sound Tracker Pro file format
  • .asc - Sound Master file format
  • .psc - Pro Sound Creator file format
  • .sqt - SQ Tracker file format
  • .ay - AY file format
  • .psg - Programmable Sound Generator file format
  • .rsf - Registers Stream Flow file format
  • .yrg - Custom AVR-AY format
  • .mod - Amiga MOD tracker format designed for creating, storing and playing music on an Amiga PC
  • .s3m - (Scream Tracker 3 Module) is a module file format, based on the original MOD format used on the Amiga computer.
  • .xm - The XM file format, also known as Extended Module, is a digital audio file type for music created in the FastTracker 2 software (rev.D and above only).
  • .tap - A file format for emulating ZX Spectrum magnetic tape images, which stores data from standard Sinclair BASIC procedures for working with a cassette.
  • .tzx - A file format used to store programs and games for the ZX Spectrum computer as audio data from magnetic tape.
  • .mp3 - MP3 (MPEG-1 Audio Layer 3) is a widely used digital audio format that uses a lossy compression method to significantly reduce file size while maintaining near-CD quality audio.
  • .wav - is an audio file format for storing uncompressed audio data, developed by Microsoft and IBM. It is known for high-quality audio that retains all original data, but results in large file sizes, making it popular for professional audio recording and editing. The format stores audio data in chunks and commonly uses linear pulse-code modulation (LPCM) for encoding.
  • UART mode (available in player settings menu as Player source)
  • SD forwarding via USB as Mass Storage device (rev.D and above only) (press left button("-") and turn ON player)

Controls

  • Before player turning on - hold left button and turn on player to enter root config (needed for change encoder type). Encoder types:
    1. STEP 4L - active low (pull-up to VCC). Full cycle (4 phases) per click.
    2. STEP 4H - active high (pull-up to GND). Full cycle (4 phases) per click
    3. STEP 2 - half cycle (2 phases) per click (Set by default)
    4. STEP 1 - quarter cycle (1 phase) per click, and non-latching encoders
  • Before player turning on - hold right button and turn on player to reset config to default.
  • Before player turning on - hold encoder button and turn on player to reset last playing track (if player freezes or reboot on this file).
  • Encoder Hold - change mode player/file browser
  • Encoder Click - in player mode - play/pause; in file browser mode select track/playlist/directory; select - in config mode
  • Encoder Double click - in player mode - open settings
  • Encoder Push and turn right - fast forward (for ay format change next subsong, for tape formats - change next block)
  • Encoder Push and turn left - slow down (for ay format change previous subsong, for tape formats - change previous block)
  • Left button click/hold - volume - (in player mode); cancel - in config mode
  • Right button click/hold - volume + (in player mode)
  • Left button double click - change AY clock (in player mode) for PSG formats or change stereo panning for formats over DAC (mod,s3m etc.)
  • Right button double click - change play mode: all/shuffle/once (in player mode)
  • Right button hold and encoder click - remove file (only files, only in file browser).
  • Right button click - change file sorting in file browser. (only in file browser).

Playing modes:

  • Playing all tracks (in folder/playlist)
  • Playing random track (in folder/playlist)
  • Playing once track (loop)

Supports fully realtime file browser

Supports realtime AY layers change:

  • ABC
  • ACB
  • BAC
  • BCA
  • CAB
  • CBA

Supports realtime AY clock change:

  • ZX SPECTRUM - 1773400 Hz
  • PENTAGON - 1750000 Hz
  • MSX - 1789772 Hz
  • CPC - 1000000 Hz
  • ATARI ST - 2000000 Hz

Built-in battery

Built-in charger and indication on LED and TFT

Built-in headphones stereo amplifier controlled by I2C bus

Demo video with digital sound record:

Watch the video

UPD 22.10.2024

  • Add new feature: "UART mode" with AVR-AY player through UART.

UPD 04.03.2025

  • Add new formats: .mod and .s3m tracker module formats
  • Change PCB to revision C

UPD 18.06.2025

  • Change PCB to revision D (ESP32 chip change to ESP32-S3 (N16R8) chip)

UPD 16.07.2025

  • SD forwarding via USB as Mass Storage device (rev.D and above only)

UPD 12.09.2025

  • Add .xm file format (rev.D and above only). Change Firmware version to 3.5

UPD 15.10.2025

  • Add .tap, .tzx formats to play and loads programms on ZX-Spectrum.

UPD 08.10.2025

  • Add .mp3, .wav formats.

UPD 10.10.2025

  • Add file sorting in file broser on right button click!

Parts

113
QtyValueFootprintReferences
18100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C5, C6, C10, C16, C20, C24, C26, C27, C28, C29, C30, C31, C32 +2
1810KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R10, R11, R15, R16, R18, R26, R27, R28, R30, R34, R35, R36, R37, R38, R39 +2
64.7KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R9, R12, R14, R17
51KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R3, R20, R32, R33
4, , ,
4470nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC11, C12, C13, C14
322ufCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC19, C21, C22
2100uCapacitor_Tantalum_SMD:CP_EIA-7343-31_Kemet-D_Pad2.25x2.55mm_HandSolderC9, C15
210ufCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC17, C18
222Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC33, C34
2220Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR29, R31
2470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR21, R22
2510Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8, R13
25K1Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR41, R42
274HC595Package_SO:SO-16_5.3x10.2mm_P1.27mmU8, U9
2AY-3-8910Package_DIP:DIP-40_W15.24mm_SocketU1, U2
2BC817Package_TO_SOT_SMD:SOT-23Q2, Q3
10Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR19
10.1RResistor_SMD:R_0805_2012MetricR23
1100%LED_SMD:LED_0805_2012MetricD4
1100KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6
1100uffootprints:CP_EIA-7343-31_Kemet-D-uniC4
110KResistor_SMD:R_0805_2012MetricR25
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSolderingY3
11UHInductor_SMD:L_7.3x7.3_H3.5L1
122ufCapacitor_SMD:C_0805_2012MetricC23
125%LED_SMD:LED_0805_2012MetricD1
147uffootprints:CP_EIA-7343-31_Kemet-D-uniC25
150%LED_SMD:LED_0805_2012MetricD2
175%LED_SMD:LED_0805_2012MetricD3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U7
1BAT+TestPoint:TestPoint_Pad_D3.0mmBAT+1
1BAT-TestPoint:TestPoint_Pad_D3.0mmBAT-1
1BC807Package_TO_SOT_SMD:SOT-23Q1
1BOOTfootprints:SW_SPST_PTS810_handsolderingSW3
1CH340GPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
1DOWNButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmS2
1EG1213mod:SW_EG1213S6
1ENfootprints:SW_SPST_PTS810_handsolderingSW2
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U4
1LOGOmod:spawnllogoG***
1MiniJackfootprints:AUDIO_JACK_3.5MM_SMD_TRRS_rounded_mixedJ2
1R50Resistor_SMD:R_0805_2012MetricR24
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmEncoder1
1SD Cardmod:TFP09212BJ3
1SM5308Package_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mmU6
1ST7789mod:ST7789TFT1
1SW_PushJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmSW1
1TPA6130A2RTJTG4mod:QFN50P400X400X80-21NU5
1UPButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmS4
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ1
1jumperJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1

Questions

How big is the ESP32AY PCB?

It measures 55 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ESP32AY use?

113 parts, built around the ESP32-WROOM-32, CH340G, 74HC595 and AMS1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ESP32AY KiCad files?

From the djspawnbrest/ESP32AY repository on GitHub, at the commit this page was made from: the board is PCB/revB/KiCad/ESP32AY.kicad_pcb and its schematic PCB/revA/KiCad/ESP32AY.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESP32AY design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from djspawnbrest/ESP32AY

3
  • 2 layers55 × 100 mmESP32AY revD2, the printed circuit board in 3D

    ESP32AY revD2

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    138 parts59GPL-3.0
  • 2 layers55 × 100 mmESP32AY, the printed circuit board in 3D

    ESP32AY

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    112 parts59GPL-3.0
  • 2 layers55 × 100 mmESP32AY, the printed circuit board in 3D

    ESP32AY

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    109 parts59GPL-3.0

Similar boards

  • 2 layers100 × 68 mmSI4684 SMD, the printed circuit board in 3D

    SI4684 SMD

    PE5PVB/SI4684-DAB-Receiver

    SI4684 ESP32 DAB Receiver

    91 parts135GPL-3.0
  • 2 layers59.3 × 38.1 mmWay To Silence, the printed circuit board in 3D

    Way To Silence

    juthomas/Way-To-Silence

    67 parts
  • 2 layers89.6 × 79 mmTDR 5351 core, the printed circuit board in 3D

    TDR 5351 core

    MR-DOS/TDR_diploma_thesis

    Time domain reflectometer. Includes Hardware, firmware and GUI in Octave. Also a diploma thesis.

    199 parts33GPL-3.0
  • 2 layers33.5 × 24.5 mmSistemaSTC, the printed circuit board in 3D

    SistemaSTC

    SamyuMT/proyectosKicad

    30 parts
  • 2 layers28 × 48 mmE meter hardware, the printed circuit board in 3D

    E meter hardware

    www-ShapeLabs-de/sgm4_to_mqtt

    ESP8266 electricity meter reading head for SGM-C4 meter with homeassistant mqtt-discovery

    34 parts3MIT
  • 4 layers155.7 × 147.6 mmSBSV-16 final, the printed circuit board in 3D

    SBSV-16 final

    Soham121-935/pcb-

    141 parts