Pages: [1]   Go Down
Author Topic: WT588D-16P Sound Module Working Code  (Read 1590 times)
0 Members and 1 Guest are viewing this topic.
VA, USA
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi all, I want to share working code for the WT588D sound module. The code is not a library, just a quick example hopfully to help someone get started working with these neat little devices.

The module plays sound stored on an EEPROM and is capable of driving an eight Ohm speaker at 0.5watts. The module supports more than 200 sound files in WAV format.

Quick video demo: http://www.youtube.com/watch?v=7RrWNjpomxs&feature=youtu.be
(The sound files are just wav files generated by a free online text to speech app,)

As far as I know, there are three modules based on the WT588D: WT588D-16P, WT588D-28P, and WT588D-U. The WT588D-U  has an onboard USB programmer, while the WT588D-16P and WT588D-28P require the special USB external programmer.

A quick eBay search should show you all three modules including the external USB programmer: http://www.ebay.com/sch/i.html?_trksid=p2047675.m570.l1313&_nkw=WT588D&_sacat=0&_from=R40

There is a shared Google drive with the control software to upload wav files to the devices, the user manuals, and schematics , they are well written for this type product: https://docs.google.com/open?id=0B2_rhDNAxM4sbmRtM2dXM2ZxWUE

Code:
/*

This program cycles through the first eight files loaded onto a WT588D-16P Sound Module

The pins labeled on the data sheet as CLK, DI, DO, CS, REST are for programming
the module via the external USB programmer.

In the Waytronic VoiceChip beta software, the settings are configured as "Control Mode: Three Line Mode, and Busy Mode: LOW"


*/

#define WT588D_RST 7 //Module pin "REST" or pin # 1
#define WT588D_CS 6 //Module pin "P02" or pin # 11
#define WT588D_SCL 9 //Module pin "P03" or pin # 10
#define WT588D_SDA 8 //Module pin "P01" or pin # 9
#define WT588D_BUSY 10 //Module pin "LED/BUSY" or pin # 15

byte file_count = 1;

void setup() {

  pinMode(WT588D_RST, OUTPUT); 
  pinMode(WT588D_CS, OUTPUT);
  pinMode(WT588D_SCL, OUTPUT);
  pinMode(WT588D_SDA, OUTPUT);
  pinMode(WT588D_BUSY, INPUT); 

  digitalWrite(WT588D_CS, HIGH);
  digitalWrite(WT588D_RST, HIGH);
  digitalWrite(WT588D_SCL, HIGH);

}


void loop()
{

  WT588D_Send_Command(file_count);

  file_count++;

  if(file_count == 8) file_count = 0;

  delay(50); //give the module time to start playing

  while(digitalRead(WT588D_BUSY) == 0) { }

  delay(200);

}


void WT588D_Send_Command(unsigned char addr) {

  unsigned char i;

  digitalWrite(WT588D_CS, LOW);

  delay(5); //delay per device specifications

  for( i = 0; i < 8; i++)  {   
    digitalWrite(WT588D_SCL, LOW);   
    if(bitRead(addr, i))digitalWrite(WT588D_SDA, HIGH);
    else digitalWrite(WT588D_SDA, LOW);         
    delay(2);  //delay per device specifications   
    digitalWrite(WT588D_SCL, HIGH);   
    delay(2);  //delay per device specifications
  } //end for

  digitalWrite(WT588D_CS, HIGH);

} //end WT588D_Send_Command

Hope this helps!
« Last Edit: March 21, 2014, 01:45:52 am by SugarBombs » Logged

"The whole world must learn of our peaceful ways, by force!" - Bender

Denmark
Offline Offline
God Member
*****
Karma: 8
Posts: 527
Please don't send questions as PM!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

How about this page, it links a different zip which contains complete documentation:
http://www.emartee.com/product/41694/WT588D%20U%20WAV%20USB%20Module

// Per.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you for posting this information. I have recently started trying to integrate a WT588D-u (the one with built-in USB for programming). It's been a real source of frustration. I can't get it to make a peep even in the stand-alone KEY mode. I also tried to interface it with a Pro Mini 3.3v with 3-line serial and still nothing.

What kinds of issues did you run into while getting started with this module? How is the sound quality? (I wouldn't know, mine doesn't work!)
Logged

Denmark
Offline Offline
God Member
*****
Karma: 8
Posts: 527
Please don't send questions as PM!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

What kinds of issues did you run into while getting started with this module? How is the sound quality? (I wouldn't know, mine doesn't work!)

Where did you get the idea that i have the module ? I just googled a bit for you, that's all.

// Per.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Where did you get the idea that i have the module ? I just googled a bit for you, that's all.

My comments were directed to SugarBombs, the original poster. He obviously has some experience with the module.
Logged

Denmark
Offline Offline
God Member
*****
Karma: 8
Posts: 527
Please don't send questions as PM!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

My comments were directed to SugarBombs, the original poster. He obviously has some experience with the module.

Oops, sorry mate  smiley-red

// Per.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No worries.

SB, would you care to elaborate on how you have this wired in your video. It looks like you have lines run from the programmer to your breadboard while the unit is in operation. Is this just so you can program the WT588D chip without taking it off your breadboard? Also, it looks like you've got a transistor wired to pin 14? (I can't really tell which pin in the video, but it looks close to that). Why is was that necessary?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I got it to work after all! It ended up being some kind of software corruption problem. Apparently, if you start your sound project in "key" mode then change it to serial mode and then back to key mode something gets messed up. I was able to start a new project and get everything working.

Some extra news to add is that you can drive the serial interface with 3.3v logic. It looks like SB was using a Nano which operates at 5v. I got it to work with a Pro Mini 3.3v.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It seems to work pretty well in my project so far. Now I want to make it louder.

The unit itself is capable of outputting 0.5 Watts of power with an 8 Ohm load. I'd like to get ~1 Watt @ 8 Ohms. Anyone have any ideas? I've got limited space in my project so I don't have room for a ton of huge capacitors or complicated amplifier circuitry. I wonder if I could use a linear amplifier chip like this one:
http://www.digikey.com/product-detail/en/LM386N-4%2FNOPB/LM386N-4%2FNOPB-ND/148192

Logged

Pages: [1]   Go Up
Jump to: