wav files are supported (44.100hz/16bit/stereo) but with issues: files start to play only after 1 or 2 seconds of blank sound with a fading-in effect. tried to lower the sampling rate without any change.
This module looks like a fun one to write a library for. It seems to support a lot of neat features that are confusing in the datasheet. I still need to pick one up, but all sources I have found are in China which for some reason right now is taking over a month to arrive here in the U.S.
I suspect that fading-in is probably some feature that is set somehow and not well documented. Otherwise, it wouldn't make a lot of sense to do it as it would actually take more effort to fade in than to just play.
Retroplayer:
This module looks like a fun one to write a library for. It seems to support a lot of neat features that are confusing in the datasheet. I still need to pick one up, but all sources I have found are in China which for some reason right now is taking over a month to arrive here in the U.S.
I suspect that fading-in is probably some feature that is set somehow and not well documented. Otherwise, it wouldn't make a lot of sense to do it as it would actually take more effort to fade in than to just play.
i don't know but with mp3 files everything is fine (no fade-in effect)
elac:
a schematic to connect this to the Uno?
thanks.
follow the data sheet
there is the WT5001M02-28P pin assignment scheme (page n. 10). On the board the first pin on the left is labeled "1" as you can see on the magnified picture.
The 5v input is the vdd50 pin 22.
From pag. 14 you can find the serial commands to use with arduino.
It is possible to connect the files to buttons?
For example if i press button 1 it's gonna play the file 1, press 2 play file 2 and so on??
My second question is that i want to loop the sound files so when i press the button it is starting the file, and the playing is countinous ( repeat the same file endlessly) until i press another button.
If it is possible can you give me a hand how to do it?
What is the lowest voltage this module works at? I ordered one two weeks ago, probably need to wait another two weeks for it to get here. Would just like to do my planning. I will have one/two/four LifePo4 batteries that deliver +3.3V each. I would prefer to stay at 3.3V rather than going to 6.6V and have a regulator waste alot of my voltage
On pages one and two of the datasheet it has this for voltage: 5.0V - 3.3V; 3.3V - 1.8V
On page three it says -0.3V - 5.2V
On page four it says 3.3V minimum to 5.2V maximum
task:
What is the lowest voltage this module works at? I ordered one two weeks ago, probably need to wait another two weeks for it to get here. Would just like to do my planning. I will have one/two/four LifePo4 batteries that deliver +3.3V each. I would prefer to stay at 3.3V rather than going to 6.6V and have a regulator waste alot of my voltage
On pages one and two of the datasheet it has this for voltage: 5.0V - 3.3V; 3.3V - 1.8V
On page three it says -0.3V - 5.2V
On page four it says 3.3V minimum to 5.2V maximum
well then you should test the 3.3v and please report here if it works
remember the wav files seems not (well) supported, so i would start with mp3 files testing
I'm probably very spoiled, but I don't find that module very cheap.
I can buy a car mp3 player/transmitter with USB connector, SD card reader, remote control and decent sound quality for maybe $4.00. But just an mp3 player without FM transmitter, without remote, without USB but with Arduino compatible input pins instead of buttons is $19.99. Why? I guess part of the explanation is the fact that they don't make this in the same quantities. But yet, $20?
I have a problem with the WT5001M02-28P
I'm a firefighter in the Netherlands and I have made with the arduino a system that when we get a call the go on and a sound is playing. Every thing work only problem when we get a call first the sound is on low volume and go higher and and it will repeat in the middle of the call sound. is there somebody who can help me.
//Pager Circuit
const int ledOn = 13; //Green led for visible on
const int timeRelay = 12; //Timerelay for switching the light on and after delay off
const int led_tR = 11; //See of the TimeRelais signal goes off
const int remoteControl = 10; //To send a signal to a Remote Control.
const int led_rC = 9; // See of the remote control is Off
const int optocoup_pager = 6; //Pager with optocoupler
//const int buttinState = 0; // variable for reading pushbutton status
void setup() {
pinMode(ledOn, OUTPUT);
pinMode(timeRelay, OUTPUT);
pinMode(led_tR, OUTPUT);
pinMode(remoteControl, OUTPUT);
pinMode(led_rC, OUTPUT);
pinMode(optocoup_pager, INPUT);
Serial.begin(9600);
Serial.write(0x7E);
Serial.write(0x03);
Serial.write(0xA7);
Serial.write(0x1F); // volume max
Serial.write(0x7E);
//start sound
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x02); // track number
Serial.write(0x7E);
delay(3000);
}
void loop() {
int val = digitalRead(optocoup_pager);
if (val == HIGH) {
digitalWrite(timeRelay, HIGH);
digitalWrite(remoteControl, HIGH);
digitalWrite(led_tR, HIGH);
digitalWrite(led_rC, HIGH);
digitalWrite(ledOn, HIGH);
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x01); // track number
Serial.write(0x7E);
delay(300);
digitalWrite(timeRelay, LOW);
digitalWrite(remoteControl, LOW);
digitalWrite(led_tR, LOW);
digitalWrite(led_rC, LOW);
}
}
//Pager Circuit
const int ledOn = 13; //Green led for visible on
const int timeRelay = 12; //Timerelay for switching the light on and after delay off
const int led_tR = 11; //See of the TimeRelais signal goes off
const int remoteControl = 10; //To send a signal to a Remote Control.
const int led_rC = 9; // See of the remote control is Off
const int optocoup_pager = 6; //Pager with optocoupler
//const int buttinState = 0; // variable for reading pushbutton status
void setup() {
pinMode(ledOn, OUTPUT);
pinMode(timeRelay, OUTPUT);
pinMode(led_tR, OUTPUT);
pinMode(remoteControl, OUTPUT);
pinMode(led_rC, OUTPUT);
pinMode(optocoup_pager, INPUT);
Serial.begin(9600);
Serial.write(0x7E);
Serial.write(0x03);
Serial.write(0xA7);
Serial.write(0x1F); // volume max
Serial.write(0x7E);
//start sound
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x02); // track number
Serial.write(0x7E);
delay(3000);
WaitForCall();
}
void loop() {
//Nothing needed here
}
void WaitForCall()
{
while (true){
int val = digitalRead(optocoup_pager);
if (val == HIGH) {
digitalWrite(timeRelay, HIGH);
digitalWrite(remoteControl, HIGH);
digitalWrite(led_tR, HIGH);
digitalWrite(led_rC, HIGH);
digitalWrite(ledOn, HIGH);
Serial.write(0x7E);
Serial.write(0x03);
Serial.write(0xA7);
Serial.write(0x1F); // volume max
Serial.write(0x7E);
delay(10);
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x01); // track number
Serial.write(0x7E);
delay(300);
CallDone();
}
}
}
void CallDone()
{
digitalWrite(timeRelay, LOW);
digitalWrite(remoteControl, LOW);
digitalWrite(led_tR, LOW);
digitalWrite(led_rC, LOW);
while(true)
{
int val = digitalRead(optocoup_pager);
if (val == LOW) {
WaitForCall();
}
}
}
Thanks.
I'm really al lake, you don't use the Void loop() is it now possible to implement a Hygrostate and thermostate to read the wheater.
when I place that in the in to the loop? whitout disturbing the pager signal
You can use the while(true) in WaitForCall as if it was a loop. And anything you put above while(true) in WaitForCall will run once when WaitForCall is called from setup() or from CallDone or anywhere else you would stick it in your code. Same goes for the CallDone function. Or any other function you create AND use while(true) in it.
int val = digitalRead(optocoup_pager);
if (val == LOW) {
WaitForCall();
}
(and anything you add to it) is looped inside while(true) until it is broken when your if (val == LOW) is true or any other interrupt you wish happens.
Try putting your code for the hydrostat and thermostat in the WaitForCall while(true) above if (val == HIGH).
Create a function and use that.
Like this
void WaitForCall()
{
//Put any code here that you want to run ONLY when this function is called
while (true){
int val = digitalRead(optocoup_pager);
CheckWeather(); //Runs monitor weather function
if (val == HIGH) {
digitalWrite(timeRelay, HIGH);
digitalWrite(remoteControl, HIGH);
digitalWrite(led_tR, HIGH);
digitalWrite(led_rC, HIGH);
digitalWrite(ledOn, HIGH);
Serial.write(0x7E);
Serial.write(0x03);
Serial.write(0xA7);
Serial.write(0x1F); // volume max
Serial.write(0x7E);
delay(10);
Serial.write(0x7E);
Serial.write(0x04);
Serial.write(0xA0); // A0 for SD card
Serial.write((byte)0x00);
Serial.write(0x01); // track number
Serial.write(0x7E);
delay(300);
CallDone();
}
}
}
void CallDone()
{
//Put any code here that you want to run ONLY when this function is called
digitalWrite(timeRelay, LOW);
digitalWrite(remoteControl, LOW);
digitalWrite(led_tR, LOW);
digitalWrite(led_rC, LOW);
while(true)
{
int val = digitalRead(optocoup_pager);
CheckWeather();// Use it here so not to lose monitoring while call is active
if (val == LOW) {
WaitForCall();
}
}
}
void Checkweather()
{
//Put your weather monitoring code here
//It will run then return to the function it was called from
}
SimLego:
I'm probably very spoiled, but I don't find that module very cheap.
I can buy a car mp3 player/transmitter with USB connector, SD card reader, remote control and decent sound quality for maybe $4.00. But just an mp3 player without FM transmitter, without remote, without USB but with Arduino compatible input pins instead of buttons is $19.99. Why? I guess part of the explanation is the fact that they don't make this in the same quantities. But yet, $20?
it's cheaper compared to other mp3/wav sound module for arduino.
And it seems obvious that this module is more expensive than a normal mp3 player because this can be controlled by Arduino (or other MC) as needed trought input pins... the basic principle of arduino ..
I spent an entire day with this module and want to put directly in the trash not before destroing it with an hammer...
The datasheet it's one of the worst I've see in my life, it's almost useless! I will call it Datashit.
They claim compatible with wav but if you read the datashit(!) you will see that you need another model (?!?)
They put SPI for what? In the datashit almost no mention apart a couple of words. Trying to play/access SPI memory, get any type of results from SPI it's simply a waste of time with no results.
Try to connect an USB memory stick (they call U in the datashit... why???), nothing more than 2 giga works and it connet/disconnect continuosly so forget the 'U' disk.
There's a SPI memory of 16M onboard, the only way to use it's put an SD card and copy the content in the SPI memory, oh my...
In datashit it's almost impossible understand witch is the supply limits of this module! In my experiment I see that will works only at 5V If you try to supply at 3.3 even serial communication (that seems the only protocol accepted) will not be reliable and the LDO out will spot strange results.
I still trying to figure out what/where is the iSound.mp3 file mentioned in the datashit and why I need to edit it!!!!...oh, my...
The sound quality suffer from some digital noise that became un'acceptable when volume it's too low.
The only thing that works is the serial communication but figure out that you will need some time of control if you intend to use this module in applications outside the simple 'play the file', with the other module there was a digital line connected to busy led, I cannot understand why the protocol of this chip it's so miserable.
Last, I'm afraid but this chip it's expensive, for what you get, the obscure and insufficent protocol, the tons of useless and undocumented pins, the features on board that are not working or not documented, it's really expensive and documentation it's near the useless.
An outstanding failure in design...
PS
Thanks onesky to save my day and let others to play with this thing, you have a great patience! But I'm trying to figure out where's my hammer...
as I can do to access the contents of the SD and internal memory module.
I could tell as I connect it to arduino and PIC microcontroller?
There are some example pic done to help me?
is there any example you select the track you want to play and can be controlled with SPI or USB or serial?
as I can do to access the contents of the SD and internal memory module.
I could tell as I connect it to arduino and PIC microcontroller?
There are some example pic done to help me?
is there any example you select the track you want to play and can be controlled with SPI or USB or serial?