Skip to content

Pinouts

tinySpeak uses the following tinyCore GPIO pins. These pins are in use whenever the HAT is mounted — avoid assigning them to other peripherals in your own sketches.

tinySpeak PCB schematic overview



SignalGPIODescription
BCLK9Bit clock
LRC10Left/right clock (word select)
DOUT8Serial data output to amplifier

Initialize the audio output in your sketch with:

audio.setPinout(9, 10, 8); // BCLK, LRC, DOUT


SignalGPIODescription
SCK13Bit clock
WS11Word select
SD12Serial data input from microphone

The SPH0645 requires 32-bit stereo Philips mode via the ESP-IDF I2S driver (i2s_std.h). The demos read both stereo channels and extract only the left channel, shifting the 24-bit data down to 16-bit PCM:

wav_buffer[i] = (int16_t)(raw_samples[2 * i] >> 14);

Headphone Jack — TLV9062 (Analog Output)

Section titled “Headphone Jack — TLV9062 (Analog Output)”

The 3.5mm jack is driven by the TLV9062 dual op-amp and provides an analog headphone output. This is a separate signal path from the speaker amplifier — no firmware configuration is required. Disconnect the speaker if you want clean headphone-only playback.



SignalGPIODescription
BTNRXActive-low, internal pull-up enabled via INPUT_PULLUP

The button is wired between the RX pin and GND. See Adding the RX Button in the Overview for assembly details.



GPIOHAT FunctionNotes
8Speaker DOUTI2S TX data to MAX98357A
9Speaker BCLKI2S TX bit clock
10Speaker LRCI2S TX word select
11Mic WSI2S RX word select
12Mic SDI2S RX data
13Mic SCKI2S RX bit clock
RXButton (optional)Active-low, internal pull-up

All other tinyCore GPIO pins remain available for your own use when the tinySpeak HAT is mounted.