DY-HV20T sound board issue

Hi all

Using a DY-HV20T sound board in a Nerf project but no sound is playing. Previously I used a ISD1820 board and that worked fine so im confused as to what it could be?

- wire (blue) is connected to the arduino’s ground, + wire (red/ yellow) is connected to the raw voltage from the 2s lipo. Green signal wire is connected to an output pin on the arduino and activating the pin makes the signal go low which is what this board requires. 99.9% sure the SD card and audio file are correct, and ive tried all the different DIP switch combinations. There’s a 1.2k resistor on the signal pin to drop the voltage from 5v to 3.3v

If you look at the pinout drawing below, I do wonder if I’m missing a ground connection from the last pin that’s last in the line of the signal pins? But that seems to relate to switches rather than Arduino outputs?

Any help would be great! Code below as well.

// Updated for Arduino Pro Micro USB-C 5V - Jan 2026. Audio pin remains HIGH (Idle), pulls LOW to trigger sound.

const int alignPin = 5; 
const int triggerPin = 6; 
const int recoilPin = 7; 
const int laserPin = 8; 
const int audioPin = 4; 
const int RotSwitch1 = 14; // Single
const int RotSwitch2 = 16; // 3-Shot (Note: Logic check below)
const int RotSwitch3 = 10; // Full Auto

void setup() {
  pinMode(triggerPin, INPUT); 
  pinMode(alignPin, INPUT); 
  pinMode(laserPin, OUTPUT); 
  pinMode(recoilPin, OUTPUT); 
  pinMode(audioPin, OUTPUT);
  
  // Set audio pin HIGH immediately so it doesn't trigger on boot
  digitalWrite(audioPin, HIGH);

  pinMode(RotSwitch1, INPUT_PULLUP);
  pinMode(RotSwitch2, INPUT_PULLUP);
  pinMode(RotSwitch3, INPUT_PULLUP);
}

void fireSequence(int postDelay) {
  delay(6); // UIPM barrel delay
  digitalWrite(laserPin, HIGH); 
  digitalWrite(recoilPin, HIGH); 
  digitalWrite(audioPin, LOW); // Trigger Audio
  delay(10); 
  digitalWrite(recoilPin, LOW);  
  delay(15);
  digitalWrite(laserPin, LOW); 
  delay(35);
  digitalWrite(audioPin, HIGH); // Stop/Reset Audio
  delay(postDelay);
}

void loop() {  
  int triggerState = digitalRead(triggerPin);
  int alignState = digitalRead(alignPin);
  int Rot1 = digitalRead(RotSwitch1);
  int Rot2 = digitalRead(RotSwitch2);
  int Rot3 = digitalRead(RotSwitch3);

  // 1. ALIGNMENT MODE (Highest Priority)
  if (alignState == HIGH) {
    digitalWrite(laserPin, HIGH);
  } 
  else {
    // 2. SINGLE SHOT
    if (triggerState == HIGH && Rot1 == LOW) {
      fireSequence(684);
      // Wait for trigger release (Debounce/Semi-auto logic)
      while(digitalRead(triggerPin) == HIGH) { delay(10); }
    }
    
    // 3. 3-SHOT BURST
    else if (triggerState == HIGH && Rot1 != LOW && Rot2 != LOW) {
      for(int i = 0; i < 3; i++) {
        fireSequence(15);
      }
      delay(675); // Cooldown after burst
      while(digitalRead(triggerPin) == HIGH) { delay(10); }
    }

    // 4. FULL AUTO
    else if (triggerState == HIGH && Rot2 == LOW) {
      fireSequence(15);
    }
    
    // 5. IDLE - Ensure laser is off if not firing or aligning
    else {
      digitalWrite(laserPin, LOW);
      digitalWrite(recoilPin, LOW);
      digitalWrite(audioPin, HIGH);
    }
  }
}

that does not like sound as a voltage divider, just current limiting.

what kind of SD card do you have?

2 or 4gb Micro SD card.

Done some quick reading and I don't think the resistor would make much difference?

I don't know. Your comment states "Arduino Pro Micro USB-C 5V" and the I think I've read somewhere that the DY-HV20T board is 3.3V....

DY-HV20T signal pins generally operate at 3.3V logic internally, but they are 5V tolerant (apparently).

I’m going to try connecting that GND pin at the end of the input pins to the main GND pin where the power connects to the board. Every schematic I’ve seen of the board has it connected so hopefully its that.

I dont get it. Connected the GND pin to the board’s main GND pin. Nothing happens but then I play around with the SD card and DIP switches and magically it starts working. Weirdly, it didnt matter which positions the DIP switches were in but it kept working. Great, problem solved I thought! so i put the project back together. Power it up. Sound doesn’t work again.

Is this a dodgy board do you reckon?