Two brand-new SparkFun WAV Triggers – hardware serial completely dead (RX works, TX silent, bootloader silent)

Hi community,

I bought two brand-new SparkFun WAV Triggers (both from European distributor in 2025.
Both boards behave exactly the same and I’m 99 % sure it’s a bad batch.

What works 100 %:

  • Physical trigger pins 1–8 → play tracks perfectly

  • SD card with track001.wav is recognized

  • Power, GND, everything OK

What does NOT work at all (both boards):

  • Serial communication in any direction

  • No response to ‘v’ (version request)

  • No track starts with ‘p’ command

  • No response from bootloader in LOAD position (tried 38400, 57600, 115200, 9600 baud)

  • No response in RUN position on 57600 baud

What I have tried (everything tested on both boards):

  • Direct connection (no level shifter): Mega TX → 10 kΩ → WAV RX, Mega RX ← WAV TX

  • Level shifter (TXS0104 and BSS138 versions)

  • Arduino Mega Serial1 / Serial2

  • ESP32-S3 as USB-UART bridge (GPIO17/18)

  • Common GND, pull-down on RX, different baud rates

  • Different wavtrigr.ini files (SerialControl=1, TrackReporting=1, etc.)

  • LOAD position with 38400 baud + “?” command → silence

  • RUN position with 57600 baud → silence

Result:

  • WAV Trigger receives nothing on RX (commands don’t trigger tracks)

  • WAV Trigger transmits nothing on TX (not even bootloader replies)

So serial port is completely dead in both directions on both brand-new units.

Is this a known bad batch from SparkFun?
Or is there any secret jumper / fuse bit that completely disables serial on some revisions?

Thank you very much for any help!

Best regards from Slovakia)

Does a com port appear at all when plugged in (with FTDI)?

Share a photo of the soldering around the serial pins

Photo 1 uploaded. I am really sorry, but I am fighting with serial connection almost one month. I will also upload schematic, how everything was connected and code for Arduino.

And Thank you very much!

What I found out:

  • In LOAD mode the communication works (bootloader responds)

  • In RUN mode the serial port is completely dead – no response, no track plays

Last test I did:

  1. Switch in LOAD, 38400 baud Sent these commands:

text

SerialControl=1
TrackReporting=1
BaudRate=57600
SaveConfig
R

→ Got back some garbage bytes (�) – bootloader accepted the commands

  1. Switched to RUN, changed to 57600 baud Ran this code:

C++

Serial2.write('v');                                   // version request
delay(300);
Serial2.write('p'); Serial2.write(0x01); Serial2.write(0x00);  // play track 001

→ Response: only repeating FC FC FC… or nothing at all
No track plays, no version string

Hardware trigger pins work perfectly on both boards.

Is this a known bad batch where serial control is permanently disabled in hardware even after bootloader config?

Thank you!

Here is output from Arduino IDE:

10:19:11.694 → ESP-ROM:esp32s3-20210327

10:19:11.711 -> Build:Mar 27 2021

10:19:11.711 -> rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)

10:19:11.711 -> SPIWP:0xee

10:19:11.711 -> mode:DIO, clock div:1

10:19:11.711 -> load:0x3fce2820,len:0x116c

10:19:11.711 -> load:0x403c8700,len:0xc2c

10:19:11.711 -> load:0x403cb700,len:0x3108

10:19:11.711 -> entry 0x403c88b8

10:19:12.803 -> Posielam príkazy do bootloadera...

10:19:13.885 -> Hotovo – prepni do RUN a skús play

10:19:13.885 -> �ESP-ROM:esp32s3-20210327

10:20:21.171 -> Build:Mar 27 2021

10:20:21.171 -> rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)

10:20:21.171 -> SPIWP:0xee

10:20:21.171 -> mode:DIO, clock div:1

10:20:21.171 -> load:0x3fce2820,len:0x116c

10:20:21.171 -> load:0x403c8700,len:0xc2c

10:20:21.171 -> load:0x403cb700,len:0x3108

10:20:21.171 -> entry 0x403c88b8

10:20:23.039 -> �

Code 1 - for settings the comunication:
void setup() {
Serial.begin(115200);
Serial2.begin(38400, SERIAL_8N1, 18, 17); // RX=18, TX=17
delay(1000);

Serial.println(“Posielam príkazy do bootloadera…”);

Serial2.print(“SerialControl=1\r\n”);
delay(200);
Serial2.print(“TrackReporting=1\r\n”);
delay(200);
Serial2.print(“BaudRate=57600\r\n”);
delay(200);
Serial2.print(“SaveConfig\r\n”);
delay(500);
Serial2.print(“R\r\n”); // Reboot

Serial.println(“Hotovo – prepni do RUN a skús play”);
}

void loop() {
if (Serial2.available()) {
Serial.write(Serial2.read());
}
}

Code 2 - for testing Audio:
void setup() {
Serial.begin(115200);
Serial2.begin(57600, SERIAL_8N1, 18, 17);
delay(1500);

Serial2.write(‘v’); // verzia
delay(300);
Serial2.write(‘p’); Serial2.write(1); Serial2.write(0); // track 1
}

void loop() {
while (Serial2.available()) Serial.write(Serial2.read());
}

Hello Russel,

I bought a USB TTL 3.3V cable and I can read from Wav Trigger its HW Version 1.34. So it is not in the board. I am sorry. Where can I please find a example of some code for ESP32 or Arduino how to communicate over the serial port? Thank you very much!

Or I2C comunnication. I can not find any description for PINs MC DI BC LR PL0

Those are for i2s stuff AFAIK

For serial control check out pg 7 of the user guide https://cdn.sparkfun.com/assets/1/c/9/a/9/WT_UserGuide_20230114.pdf

For general control using the .ini see our guide as well WAV Trigger Hookup Guide V11 - SparkFun Learn

To use with an esp32 you’d usually either pick serial and send those listed functions in the user pdf, or use outputs from the esp32’s pin to act as triggers for the WAV board’s input triggers :slight_smile:

PLO goes either high or low (can’t remember which) when a track is playing, the rest of the pins in that block are factory use for the initial firmware load and are not available for use.

1 Like