cheap sound module: what version is this?

i wouldn't give up rebel-agent, the module works, just check again all connections, pins, code used and i would change the soldered pin to 5volts

i am not using any resistor

what i understood of this board:

  1. seems it doesnt play the 0000 named file (starts playing 0001)
    2. if i connect to analog pins of arduino it plays some sounds fine while other doesn't play correctly
  2. if i connect to digital pins of arduino it plays sounds fine
  3. it needs around 1 second of delay at startup.
  4. needs to add the exact lenght time of each track using "delay" command

video test here: WTV020-SD-16P audio/sound module for arduino - test #1 - YouTube

code used on the video test:

/*
  SOMO-14D Test
  Control a SOMO-14D module to play sounds

  Reference
  http://www.4dsystems.com.au/prod.php?id=73

  Created 20 October 2009
  By Shigeru Kobayashi
 */

const int clockPin = 6;  // the pin number of the clock pin
const int dataPin = 9;  // the pin number of the dataPin pin
const int resetPin = 3;  // the pin number of the reset pin

const unsigned int VOLUME_0 = 0xFFF0;
const unsigned int VOLUME_1 = 0xFFF1;
const unsigned int VOLUME_2 = 0xFFF2;
const unsigned int VOLUME_3 = 0xFFF3;
const unsigned int VOLUME_4 = 0xFFF4;
const unsigned int VOLUME_5 = 0xFFF5;
const unsigned int VOLUME_6 = 0xFFF6;
const unsigned int VOLUME_7 = 0xFFF7;

const unsigned int PLAY_PAUSE = 0xFFFE;
const unsigned int STOP = 0xFFFF;

void setup() {
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(resetPin, OUTPUT);

  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, LOW);

  // reset the module
  digitalWrite(resetPin, HIGH);
  delay(100);
  digitalWrite(resetPin, LOW);
  delay(10);
  digitalWrite(resetPin, HIGH);
  delay(100);

  sendCommand(VOLUME_7);
}

void loop() {


  delay(1000);

  // play "0001.wav"
  sendCommand(0x0001);
  delay(4000);
  
    // play "0002.wav"
  sendCommand(0x0002);
  delay(4000);
  
  
    // play "0003.wav"
  sendCommand(0x0003);
  delay(6000);
  
    // play "0004.wav"
  sendCommand(0x0004);
  delay(6000);
  

  // stop playing
  sendCommand(STOP);
  delay(1000);
}

void sendCommand(int addr) {
 digitalWrite(clockPin, LOW);
  delay(2);
  for (int i=15; i>=0; i--)
  { 
    delayMicroseconds(50);
    if((addr>>i)&0x0001 >0)
      {
        digitalWrite(dataPin, HIGH);
        //Serial.print(1);
      }
    else
       {
         digitalWrite(dataPin, LOW);
        // Serial.print(0);
       }
    delayMicroseconds(50);
    digitalWrite(clockPin, HIGH);
    delayMicroseconds(50);
    
    if(i>0)
    digitalWrite(dataPin, LOW);
    else
    digitalWrite(dataPin, HIGH);
    delayMicroseconds(50);
    
    if(i>0)
    digitalWrite(clockPin, LOW);
    else
    digitalWrite(clockPin, HIGH);
  }
  
  delay(20); 
}

now, since on my project all the digital pins are busy, i must find out why on analog pins doesn't perform well

any idea?

as stated on arduino site they can be used as digital output as well

While the main function of the analog pins for most Arduino users is to read analog sensors, the analog pins also have all the functionality of general purpose input/output (GPIO) pins (the same as digital pins 0 - 13).
Consequently, if a user needs more general purpose input output pins, and all the analog pins are not in use, the analog pins may be used for GPIO.