# Audio Controller Project



## Terrormaster

I'm looking at piecing together an audio board project. I'll completely fine with working with existing boards if they exist. And right now Arduino looks to be the best option.

Here's what I need it to do in the end:


Must be low profile enough to hide in a 7"x5"x4" box without being conspicuous.
Must support multiple MP3s, preferable on an SD card (Arduino supports this).
Must be programmable.
Must have medium to high quality sound.
Must support at least two triggers.

The idea is that the unit can programmatically support up to 256 sounds loaded on the SD card (in theory and obviously based on space). 16 banks of 16 sounds. Each sound file would be named in 2 character hex (00-FF or 0-255). The high or left represents the bank and the low or right value the sound. Trigger 1 increments the bank and Trigger 2 increments the sound within the bank.

For example say bank 0 was scratching noises. And you have 4 different scratching sounds. You would have sounds 00.mp3 - 03.mp3. Activating trigger 2 moves to the next sound within the bank and plays it. Once you've reached the end it starts over (does not move to the next bank).

Say the prop is a box. So while the prop is sitting on the table we'll leave it at bank 0. Everytime we hit trigger 2 it plays the next scratching sound. Then if a person picks it up, we hit trigger 1 and the bank advances to a different set of sounds, say ghostly sounds.

The code for this is fairly simple to write. It's the parts to pull this off and still stay low profile.

I'm looking for advice on possible existing kits that can be used to put this together.

Thanks,
-TM


----------



## DarkOne

I'd use a MDFly(Tenda) board and an arduino pro mini. Clones of this arduino board are about 3 bucks on ebay. Make sure you get a 5V board and not a 3.3V. To use the "busy" pin on the audio board, you'll need a 3904 transistor and a 1k resistor. Use whatever triggers you have. Pretty simple.


----------



## HavenHaunt

Just this week I got Adafruits new Music Maker for the arduino. It is a little more expensive but it works with the mega board which i need this year.


----------



## Terrormaster

Thanks DarkOne, the MDFly board sounds like just what I need. While researching it I ran across a video showing how to wire it up and control it with a PICAXE.






This is the MDFly board used in the video (I do realize that this board has 199 file limit, but I can work with that. My 256 limit was based on a hi/lo 8-bit value, another scheme is no biggie).

http://www.mdfly.com/products/sd-card-mp3-player-module-rs232-ttl.html

I've done a little PICAXE programming and have a spare laying around. Might pull this out and start tinkering with the code.


----------



## mikkojay

*Catalex Serial MP3 Board*

I have used this board recently with much success:









I control them via 9600 baud serial with an Arduino. I use the SendOnlySoftwareSerial library on a separate pin so that I can use the serial monitor to observe debug messages on the actual serial line.

I find that they have a few advantages over the MdFly board, which I have also used:
1) cheaper ($6 shipped vs $10 + shipping)
2) smaller- the MdFly is almost 2x the size
3) faster- it may be something I am doing, but my experiments have found that a sound file with zero space at the beginning has a momentary lag before the sound is played after commanded on the MdFly board. The sound from the Catalex board is instant when commanded.
4) The Catalex board has a built in 1/8" audio jack, MdFly has none.
5) The MdFly board has a bunch of pins that I will never use. I can use a 4 pin connector with just 3 wires to run the Catalex- 5v, gnd, and Rx.

I have bought them through ebay, dx.com, and aliexpress.
The Aliexpress store is the most factory direct. I have also received email tech support directly from the manufacturer. I'll attach the user manual in case you are interested.

As far as picaxe vs Arduino, I only have experience with Arduino & AVR, so not much of an opinion there. I just use what I know.

One last thought is that the MdFly board does have the nice feature of a simple TTL pin to determine the "playing" status. This could be a factor when designing the logical state plan of your project (i.e. when do you allow the next trigger occur to avoid multiple triggers etc..)

Good luck with the project, sounds neat!
-Mike


----------



## JeffHaas

The Tenda board has been out a few years now, so it's no surprise that another company made a less expensive version of the same thing.

I've used the Tenda with both Picaxe and Arduino, I've never seen the problem with the lag. All my MP3s have been generated by Audacity, if that's any help.

There's a thread on the Picaxe forum that explains how to get the Catalex board to work with a Picaxe chip, it's pretty simple:
http://www.picaxeforum.co.uk/showthread.php?26798-Catalex-Serial-MP3-Player

And that's a good tip on the SendOnlySoftwareLibrary! I hadn't seen that one, it will make the Arduino implementations easier.


----------



## mikkojay

Hey Jeff, the Arduino flavor of the picaxe sample in your link is included in the zip file in my first post. Same stuff, just a different syntax for the most part. Yes I use audacity too- it is awesome. That lag I mentioned was a fraction of a second, barely noticeable (but could be annoying when split-second timing with another output is needed to be in time with sound). I am working on my own Arduino based controller that will be able to support either the Tenda or the Catalex board by toggling a specific config byte in the eeprom. I'll start a thread with some details as soon as I iron out the last of the feature creep.
-Mike


----------



## halstaff

Thanks for the heads up on these. I've got one on the way!


----------



## Terrormaster

mikkojay, that sounds like a pretty shweet deal. Is there a way to see if an MP3 exists before playing it?

Essentially I'd be looking at something like this (pseudo code):



Code:


IF BUTTON2 THEN
   @NEXTRACK
END

@NEXTRACK {
    TRY = 0
    ++TRACK
    WHILE TRY < 255 {
        IF TRACK NOT FOUND {
            ++TRACK
            ++TRY
            IF TRACK > 255 {
                TRACK = 0
            }
        }
        ELSE {
            TRY = 256
        }
    }
}

Just thinking out loud. But advance the track # until it can find a track that exists. The try counter is to avoid a loop.


----------



## mikkojay

There MAY be a way by sending properly formatted serial queries to the board, then parsing the serial response. Shooting from the hip, that is my first guess.
I was going to attach a text file that is the Google translation from Chinese->English of an additional PDF that I received from the manufacturer, but the forum is barking about a 500kb attachment cap.

Here is an excerpt:


Code:


Query the current status 7E FF 06 42 00 00 00 FE B9 EF 7E FF 06 42 00 00 00 EF
 [Query volume] 7E FF 06 43 00 00 00 FE B8 EF 7E FF 06 43 00 00 00 EF
 [Query the current EQ] 7E FF 06 44 00 00 00 FE B7 EF 7E FF 06 44 00 00 00 EF
 The total number of files U-7E FF 06 47 00 00 00 FE B4 EF 7E FF 06 47 00 00 00 EF current total number of files equipment
 The total number of files TF 7E FF 06 48 00 00 00 FE B3 EF 7E FF 06 48 00 00 00 EF
 FLASH total number of files 7E FF 06 49 00 00 00 FE B2 EF 7E FF 06 49 00 00 00 EF
 U disk current track 7E FF 06 4B 00 00 00 FE B0 EF 7E FF 06 4B 00 00 00 EF currently playing track
 TF current track 7E FF 06 4C 00 00 00 FE AF EF 7E FF 06 4C 00 00 00 EF
 FLASH current folder track
 Pointer 7E FF 06 4D 00 00 00 FE AE EF 7E FF 06 4D 00 00 00 EF
 The total number of tracks query folder
 7E FF 06 4E 00 00 01 FE AC EF 7E FF 06 4E 00 00 01 EF
 Query 01 folders or
 The total number of tracks FOLDER1
 Query or U disk TF total file
 Clip number 7E FF 06 4F 00 00 00 FE AC EF 7E FF 06 4F 00 00 00 EF only supports TF card and U disk
 Pointer to the current folder
 [FLASH] 7E FF 06 61 00 00 00 FE 9A EF 7E FF 06 61 00 00 00 EF
 Query currently playing folder [branch
 Hold FLASH]

That would require the use of a Serial.read() (and another pin), but I can imagine some useful values being gleaned from that. Maybe I can play with it some and see if I can extract some useful info. I am knee-deep in a couple other projects, but they are semi-related and I could see the benefit in this. Kinda makes you appreciate companies like Adafruit who wrap it all up in a nice silver platter library eh? 

-Mike


----------



## Terrormaster

I'm not familiar with the board itself. But thinking with my programmer head on. Does every action you send to the board via serout send back a response? Maybe a success/fail response? For example (using the example in the pixaxe forum as the basis) if I send it 

7E FF 06 0F 00 01 01 EF

to play song /01/001xxx.mp3 and that file doesn't exist. Can I do serial read after that request to see if the song started or not? Then either keep incrementing the track number until it returns success or presume that its at the end?


----------



## mikkojay

I wouldn't really know any of the above unless I dug in and experimented for myself. You could also store the known number of files in one of the eeprom bytes. That would simplify a lot of things.


----------



## DarkOne

mikkojay,
I think I'll try that board as well. As far as the MDFly board, if there isn't a track to play, I don't see why the busy pin couldn't be polled after a short interval to tell the microcontroller that there is no file.


----------



## DarkOne

Okay, just ordered the Catalex board on ebay, now the long wait from China...


----------



## Terrormaster

DarkOne, that would depend on the board. I don't have it so I can't experiment. But I could see a situation where you fired up an existing track, then change to a nonexisting track. Most likely scenario would be that it just kept playing the existing track instead of stopping.

Mikkojay, that could work provided I could poll on the number of tracks based on the folder i'm currently in. The idea would be that the folders would act as banks or categories of sounds. Trigger 1 would advance to the next bank/folder and looping back to the first one when it reaches the last. It would also NOT trigger playing a track. Trigger 2 would advance through the tracks within a folder and loop back to the first track in that folder when it reaches the end.

I also need it to not automatically advance to the next track or loop the track when done playing 1 track. Only Trigger 2 should advance it. So if I have 3 tracks in bank 1, and 5 in bank 2 it should work as follows:

Trigger 2: play bank 1, track 1 once and only once then stop;
Trigger 2: play bank 1, track 2 once and only once then stop;
Trigger 2: play bank 1, track 3 once and only once then stop;
Trigger 2: play bank 1, track 1 once and only once then stop;

Trigger 1: advance to bank 2, do not not any playing tracks;
Trigger 2: play bank 2, track 1 once and only once then stop;
Trigger 2: play bank 2, track 2 once and only once then stop;

DarkOne, thinking about it. In a play only once scenario I might be able to poll the busy pin provided the device uses that to indicate a track is or is not playing. Then have Trigger 2 only do its logic when nothing is playing. Or first issue a Stop then poll it waiting for it to stop before proceeding.


----------



## halstaff

Success!!!
I got my Catalex board being triggered with one of my EZ6 boards using a Picaxe 08M2. I'm now able add sound to my boards without it. That's an option I'm sure to use.
Here's the start of the code which does work -

#Picaxe 08M2

Symbol Audio = C.1
Symbol Head = C.2
Symbol Wings = C.4


Servo Head, 210
Servo Wings, 170

Routine:

pause 3000

high Audio
pause 1000

setfreq m16

serout Audio,t9600_16,($7E,$FF,$06,$0B,$00,$00,$00,$EF) 'wake up player
pause 1000
serout Audio,t9600_16,($7E,$FF,$06,$09,$00,$00,$02,$EF) 'select TF socket
pause 1000
serout Audio,t9600_16,($7E,$FF,$06,$0F,$00,$01,$01,$EF) 'play the song: /01/001xxx.mp3


servopos Head, 100
pause 1000
servopos head, 150
pause 1000

servopos wings, 90
pause 1000
servopos wings, 100 
pause 1000


servopos Head, 100
pause 1000
servopos head, 160
pause 1000

servopos wings, 170
pause 1000
servopos wings, 90 
pause 1000

goto Routine


----------



## mikkojay

Wow that was fast (shipping & firing it up)
Cool deal!
Don't you love how tidy & compact they are?
I was able to test query my board for:
1) status
2) total number of files on the card
3) total number of folders on the card
BUT*** I was never able to query the number of files in a specified folder. So, for that reason I could not contribute a solution to this thread.
-Mike


----------



## halstaff

For more involved projects, I'll probably still use the Tenda board. I've got lots of them and many of my controllers are designed to use them.
When setting up the SD card for the Catalex board, I formatted it in FAT32, added a folder "01" and then included the mp3 file into the folder and named it 001.mp3 I'm not sure if that's required but the documentation recommended it.


----------



## DarkOne

Mikkojay,
You say you were able to query the board for the status. Do you mean it returned that it was playing a file? Can you share your code? I found a website in Polish that I used google translate on, but I can't get his code to work.

I can play songs, but I'd like to know how to ask it if it is playing a track, any track, and how to read the answer. Any help would be greatly appreciated.

Thanks!


----------



## mikkojay

*Status Query*

In order to determine status, you need to send the appropriate query, then evaluate a particular byte in the response that comes back.
I created a small .Net app that I use to talk directly to the board that allows for easy analysis of the returned bytes.
Here is an example:
CMD_NEXT_SONG
SENDING: 7E-FF-06-01-01-00-00-EF
RECEIVED: 7E-FF-06-41-00-00-00-FE-BA-EF
STATUS
SENDING: 7E-FF-06-42-00-00-00-FE-B9-EF
RECEIVED: 7E-FF-06-42-00-02-*01*-FE-B6-EF
CMD_STOP_PLAY
SENDING: 7E-FF-06-16-01-00-00-EF
RECEIVED: 7E-FF-06-41-00-00-00-FE-BA-EF
STATUS
SENDING: 7E-FF-06-42-00-00-00-FE-B9-EF
RECEIVED: 7E-FF-06-42-00-02-*00*-FE-B7-EF

I have highlighted the query command in yellow.
The response you would see where the track is playing is the one with the green highlight. (The status is 01, meaning "playing").
The response where the track is stopped is seen in red. (The status is 00, meaning "not playing")

Hope that helps.

Thanks, Mike


----------



## ScaryLane

DarkOne said:


> I'd use a MDFly(Tenda) board and an arduino pro mini. Clones of this arduino board are about 3 bucks on ebay. Make sure you get a 5V board and not a 3.3V. To use the "busy" pin on the audio board, you'll need a 3904 transistor and a 1k resistor. Use whatever triggers you have. Pretty simple.


In my designs, I just use a 10K pull-up resistor to get the BUSY line working with a micro-controller. No need for the transistor.

Another trick is just sending the BUSY line into a Analog input and look for anything over 1 Volt as a HIGH on the line.


----------



## viscomjim

*Audio controller with relays*

I have been working on a board that uses a pic32 that has 1 "ambient" trigger and 4 "scare" triggers. I am using 2 mp3 modules for this so that the ambient track is not interrupted when a scare track is triggered. Everything is opto coupled. The two mp3 modules are "digitally" mixed so with a single trimpot you can mix the stereo outputs of both mp3 modules. They use the micro sd cards and sound great.

I decided to use the relay boards that are all over ebay for less than I can make the boards. This way you can choose not to use the relays if you so desire and just use the audio part by itself. I added a little acrylic case for quick prototyping until the unit is finalized. This unit also has an infrared receiver that works with most remotes including the apple remote and others. This was added last minute and can be implemented to do many things (that I still haven't put much thought into yet...).

The next version will have 32k of eeprom and additional "programming" switches so it can also be a key banger type unit also and will have the ability for 8 relays if you want (these 8 relay boards are readily available for cheap also). The processor is really fast and for this type of a unit, it is a bit overkill and is probably twirling its thumbs most of the time.

I will have more info to post as I get along with the project. Here are a couple of pics...


----------



## mikkojay

viscomjim said:


> I have been working on a board that uses a pic32 that has 1 "ambient" trigger and 4 "scare" triggers.


Hey viscomjim, that's a great looking board you have there. You should start a thread dedicated to it and spill all the gory details! I too am a fan of the ebay Chinese 4 relay modules.
-Mike


----------



## viscomjim

Hi Mikkojay, thanks for the kind words. I probably won't go into too much detail on this board as this one was developed as a prototype (actually a machine controller audio alarm unit). A buddy of mine saw this and said that it would be good for his "haunt". After a little re-programming, it seems that this unit works very well for this and he is actually incorporating 4 of these in his halloween project. Who knew???

After talking to a few "haunters", I was explained the needs for this and I am already underway on the new version. The new one will have 8 channels of relays, 8 key bangers, 2 mp3 modules, 32k eeprom, battery backed real time clock, wireless remote and a really cool multi-drop expansion bus that will allow for more relays, switches, servos and other goodies using ethernet cable. The cable will be driven so that length won't be a problem. 

The nice thing about the new one is that you won't have to program anything (other than your keybang sequence) or know any programming languages. All configurations will be done with a wireless remote that will allow just about every configuration you will ever need. You will be able to program sequences by just playing the track and keying the switches. You can replay the track and relay sequence and add to it as it is playing one channel at a time if you wish.

Once I get my boards back from china (hopefully in about a week or two) and start that build, I could start a new thread on that as I progress.


----------



## Terrormaster

Wow a lot of progress has been made here so far. Hopefully after Easter I can rotate the spring/summer/halloween stuff to the front the garage and push the winter stuff back allowing me to start prepping for Halloween. Once that's straight I can clean out the dungeon downstairs from last Halloween and start ordering and working on this myself.


----------



## neverhart

*Catalex = Great Board!*

Thanks mikkojay for the recommendation on the Catalex board! I use the MDFLY boards in my controllers, but really liked the a) price b) microSD c) smaller size and d) onboard 1/8" audio jack of the Catalex.

Just fired it up for the first time without much fuss. I have an Arduino running it on pins 5-TX and 6-RX (opt) with the provided demo code. Haven't found any libraries like SerMP3 make the MDFLY dead simple, but it ain't rocket science.

The board supports 3.2 ~ 5.2VDC so should be compatible with most micros.

Someone mentioned the docs were hard to find... they can be DLd here:
http://www.da-share.com/files/datasheets/Catalex_YX5300_Docs.zip


----------



## Atom058

Mikkojay - Really appreciate your input to this thread regarding the Catalex MP3 player. With your help, I am able to play files and query the player to determine when the current file has finished playing. You mentioned that you were able to query the player to determine the number of files stored on the TF card. Could you share that query command and the response that I should expect? Thanks!


----------



## Savagebeastxl

I am using the picaxe 18m2 and the chi030b picaxe boards with the 12vdc to the B pins and 5vdc to the C pins. My question is where do i solder the vcc, tx, rx, and g connections from the catalex board to the chi030b board? Halstaff used pin C.1 but i dont think the 18m2 has a serial connection on that pin. Thanks! Lantz


----------



## Savagebeastxl

I was able to figure it out with Halstaff's code sample. Thanks! Lantz


----------



## ScaryLane

Savagebeastxl said:


> I was able to figure it out with Halstaff's code sample. Thanks! Lantz


I hope you are using the Hardware Serial output on pin 11 (B.5) on that Picaxe 18m2 to drive the MP-3 player. When the standard Serout command is used you could have timing problems like servo Jitter. The Hardware Serial port does not stop the timers to send data like the Serout command does.

The redesign of Frankenstein and the code that I wrote does use hardware Serial port and why the latest version 3-axis software has less servo jitter than the first version.


----------



## Atom058

Sorry for bumping this thread, but I'd like to know if anyone out there using the Catalex player is able to query it for the number of files stored on the microSD card. I've poured through all the documentation and other threads that I can find and about the closest I can find to an answer is sending it the following command: [$7E,$FF,$06,$4E,$00,$00,$01,$FE,$AC,$EF]
I am able to tell the player to play specific tracks and monitor it to determine when the current track is done, so I know my communication methods are working. When I look at the response back from the player (sending the above command), I get a decimal 64 for byte #6, but it never changes. Can anyone offer some insight? Thanks!


----------



## ScaryLane

Atom058 said:


> Sorry for bumping this thread, but I'd like to know if anyone out there using the Catalex player is able to query it for the number of files stored on the microSD card.


While I can not comment on the Catalex player, there is a new $5 MP-3/wave player that's hitting the market. If fixes a lot of the issues we had with older MP-3 player from MDfly. (The reason why some many started using the lower cost Catalex player.)

This new player, plays both MP-3 and loss-less wave files. It will respond with 1 or 2 bytes of data when a command is sent to the player. So, you can ask it things like what is the length of the current track playing and now many tracks in that group. (There are 6 groups.)

The new player just came available. So, I order a few samples and should get them in around Feb 3 for quick testing and verification of the the boards specifications.

I have high hopes this new sound module will not only be the cheap and easy solution we been looking for, but some that we all can use as standard in the DIY haunt community.

I will post a new Thread about the module once I put it through my bench-tests.


----------



## Atom058

ScaryLane - Thanks for replying! And I am very interested in hearing more about your new find. I have designed many different custom boards with MP3 players on them from MDFLY, TENDA, VMUSIC2, etc. and my biggest issue was that there was no way to determine how many files were stored on the player. That meant that either I had to hard-code the number or put a DIP switch on the board that the user had to use. Neither was ideal. That is why I was excited about the Catalex board since it seems that you can query the number. But if your new find will do that and is $5, I'm all in! Question - does the new module have the on-board audio jack on it? I actually do not want that as some of my designs have the output going to board-mounted amplifiers. The Catalex board does not allow for that (no pin-outs for audio)... Anyway, Thanks for the info!


----------



## ScaryLane

Atom058 said:


> ScaryLane - Thanks for replying! And I am very interested in hearing more about your new find. I have designed many different custom boards with MP3 players on them from MDFLY, TENDA, VMUSIC2, etc. and my biggest issue was that there was no way to determine how many files were stored on the player...


First, this new audio Module uses three pins for the audio output. Left, Right and Audio Ground. You heard right, a true audio ground for less output hum and better quality audio!

As for requesting the number of file, I should first explain the file system first. Files are name (numbered) from 1001 to 6200. The thousand's digit is the index to what bank of up to 200 files the file belongs to. (There are 6 "banks" that can be selected.)

Commands $F1 to $F6 are used to select banks 1-6 with commands $01 to $C8 to play a track numbered 001-200. Using the command $E3 will return the number of tracks in the currently selected bank. It there are 7 tracks in that bank then it will return a byte $07.

All files are in the Root Folder. there is no need to "sort" the directory like the old TENDA board since the *actual filename* (not position on the SD card) is used to select the file to play.

I should point out the module only returns one or two byte for any command or query. This makes it real easy for almost any chip or controller board to handle the interface. The Picaxe "M2" series as no problem reading the return data since it as a 2 byte FIFO buffer. Just make sure that you use the Hardware Serial I/O lines.

I've delay of the release of my Banshee and Banshee Jr boards another 2 months because I want switch over to this new audio module. This new module fixes so many problems that I had with the TENDA from MDfly. And it's 1/2 the price too.


----------



## Atom058

Steve - This will be perfect - Can't wait to hear your final results and where to get them! Thanks again! Jeff


----------



## David_AVD

I'm pretty sure the JQ6500 modules can be queried for folder and file count.


----------



## Atom058

David - Did a quick look-around for those modules and didn't come across any documentation on them. Do you have any pointers? Also, it looks like there is no external storage media - are the files flashed via the microUSB connection? If so, this won't work for my applications. Sometimes the modules are embedded into a device that does not support hooking up to a computer. They need to be able to use some sort of external media and just plug it in... Otherwise, they look very compact... Thanks for chiming in! Jeff


----------



## David_AVD

There are 2 versions of the JQ6500 boards; one with flash only and one with micro SD as well.

Some details I found a while back: http://sparks.gogo.co.nz/jq6500/index.html

I've tested them both and they work well. I've not used the serial status commands yet.


----------



## Atom058

David - Thanks for the link to the information on the JQ6500. That looks VERY promising! The serial communication protocol looks exactly like what is used for the Catalex player - same structure and commands (same chip?). But does that mean that I am going to be back where I started? My problem was querying for the number of files - I couldn't figure out what it was telling me... All that being said, I do like all the pin-outs. I have some applications where this will be perfect. I will order a couple and see what I come up with. Thanks again! Jeff


----------



## Atom058

Hmmm- Just checked EBay for the -28P version (with uSD card) and it looks like $9.50 from China.... May have to re-think that... Not out of the question, though.


----------



## David_AVD

I have a couple of new board designs that will use the FLASH only version as I only need a few short sounds.

The uSD version is a lot more $$ though. Not sure why. Maybe it's not as common (yet) ? I got mine on eBay for AUD $11.50 which is about USD $8 I think.


----------



## cheeseprader

I have a couple of the boards from www.propjamr.com and am trying to find the sd card module that is used on it. It is pretty small and uses the micro sd cards. Then it would be a matter of using an arduino or something like that to control just the audio part.


----------



## David_AVD

It's quite possible that it was designed and made for that board. It may be a module just so they can design a new (drop-in) one if the chip used on that one becomes obsolete.


----------



## cheeseprader

That makes sense, maybe I will try the catalex unit that was described earlier, since the code has already been figured out.


----------



## cheeseprader

Member scary lane posted...

"I've delay of the release of my Banshee and Banshee Jr boards another 2 months because I want switch over to this new audio module. This new module fixes so many problems that I had with the TENDA from MDfly. And it's 1/2 the price too."

Can you tell us what that sound module is so I can do some googlizing on it? It sounds like a good module for simple audio projects and priced right too...

Thank you


----------



## ScaryLane

cheeseprader said:


> Can you tell us what that sound module is so I can do some googlizing on it? It sounds like a good module for simple audio projects and priced right too...Thank you


I'll will be posting a complete write up later this week in its own thread. (Once the samples get here and I can verify the operation of the module.) But from the docs that I've read over, it fixes the issues that I've had with the audio modules that came before it.

As for the docs, they are not available on the web yet. Besides, I don't want fellow haunters to order it till I've run the bench tests and make sure its something that is really this good.

I do have high hopes for this new device. (Based on what I've read and talking with the company.)


----------



## Atom058

Steve - Was wondering what your verdict was on the new MP3 module that you were assessing? Jeff


----------



## ScaryLane

Atom058 said:


> Steve - Was wondering what your verdict was on the new MP3 module that you were assessing? Jeff


Jeff:
When I have a verdict, will post it on a new thread in Tech-Terror section. It takes time to write the new code and run all the tests.

Besides, I only had the samples for about day now. Please be patient.


----------



## Atom058

Thanks, Steve - Don't mean to be impatient - just excited about the prospect. If you could just post a notice on this thread that your new thread is up, we all will get notified. Thanks! Jeff


----------



## mikkojay

Atom058 said:


> I've poured through all the documentation and other threads that I can find and about the closest I can find to an answer is sending it the following command: [$7E,$FF,$06,$4E,$00,$00,$01,$FE,$AC,$EF]


I think your query is a little off.
Try this:
[7E FF 06 48 00 00 00 FE B3 EF]
I believe the 7th byte of the response is what you want.
*Here is a document* that shows the experiment.
Good luck!
-Mike


----------



## ScaryLane

Atom058 said:


> Thanks, Steve - Don't mean to be impatient - just excited about the prospect. If you could just post a notice on this thread that your new thread is up, we all will get notified. Thanks! Jeff


The review of the new AU5017 player has been post in its own thread.


----------



## Atom058

Mikkojay (Mike) - Thanks for that information on the Catalex and that document. Still playing with it but not working so far, but I think it's just a coding / timing issue on my part. Will keep at it now that I at least have a direction. Will post my results.. One thing that I noticed from his screen shots is that the files look like they are in the root directory of the uSD card and they are not preceded by a "001", "002", etc. From what I have gleaned from this thread and data sheets is that all files should begin with a number and be put into sub directories "01", "02", etc... My guess is that the #Files query just searches the uSD card for all files with a ".MP3" extension and does not care what they are named or where they are located... Anyway - hope to have this figured out soon. ScaryLane has posted his findings on the new module from MDFY, but I'd like to have the Catalex as a backup, so I am pursuing both. Thanks again! Jeff


----------



## mikkojay

Hey Jeff- in my experience, it is the order in which the file is copied to the SD card VS the actual file name that determines the "number" of the file, from the module's perspective. The file naming is more of way to keep things organized & human readable. 
For example, if you start with an empty SD card, then:
1) copy a file called 002.mp3 to it
2) copy a file called 001.mp3 to it
3) tell the module to play track 1
The result would be that 002.mp3 would play.
It is a weird quirk of these that, if not understood, could drive someone mad thinking that their code is incorrect.

The alternate module that ScaryLane is documenting looks great- the price & size make it very attractive for sure. It is nice to have a few options 

-Mike


----------



## Atom058

Hello everyone - I have good news - I am now able to successfully query the uSD card for the number of files in a specific directory (01, 02, etc.). You will send [$7E,$FF,$06,$4E,$00,$00,$01,$EF] where the folder number is the 7th term (in this case 01). You will get a reply with the 7th term containing the number of files (in Hex) in that directory. Here is what was causing me problems - I was waiting too long (500mS) to read the reply. Once I dropped it to 10 mS, everything worked fine. All good now! Thanks for all the feedback! Jeff


----------



## halstaff

Savagebeastxl said:


> I am using the picaxe 18m2 and the chi030b picaxe boards with the 12vdc to the B pins and 5vdc to the C pins. My question is where do i solder the vcc, tx, rx, and g connections from the catalex board to the chi030b board? Halstaff used pin C.1 but i dont think the 18m2 has a serial connection on that pin. Thanks! Lantz


I am actually thinking about adding this to a chi030 board. How did you end up connecting yours?


----------

