Jump to content
Mr.RC-Cam

9X R/C Tx Voice Hacks / Speak-9X Interface Project Blog

Recommended Posts

I have a No.14/1204 and it works good (no delay).

Aha! I haven't actually checked that "normal" SD module yet. It has the V1.1 marking so just assumed it would be like your V1.1 ones, and I tossed it in a drawer without testing. We hadn't considered the chip date codes yet...

So yeah, I'll give it a try :)

Share this post


Link to post
Share on other sites

I expect it will work great. You may be the first confirmed sighting of a V1.1 SD module that has the old chip!

Share this post


Link to post
Share on other sites

Hmm I've done a short test this morning, and kind of gave up after trying 4 different SD cards, each formatted several times with different block sizes. Won't be reliable to test delays if I already can't get a file to play properly...

Some files (for example 0300.wav in your model names pack) play all distorted, some (e.g. 0301.wav) play fine, and some of the open9x sound pack chain themselves together (playing 0000.wav says "zeroREE" like playing part of file 0003.wav at the end)... Changing block size changes the errors and/or affected files, but there's always something wrong somewhere...

Share this post


Link to post
Share on other sites
Hmm I've done a short test this morning, and kind of gave up after trying 4 different SD cards, each formatted several times with different block sizes.

Don't give up yet. Despite any success stories that may seem to contradict, you should only use a 1GB card. Do not use anything larger. It must be formatted to FAT16 using the standard block size. This can be done on WIN7 PC using its standard format tool.

* Do not do a quick format, perform a full format.

* Copy ALL the files in one pass into the root directory.

* Do not have any other files or directories on the card.

* Cross your fingers the card is a winner with the SD module. If not, then grab another card and try again.

The SD card compatibility issue is one of the reasons I felt someone needed to sell the SD module along with a good card. Since no one was doing that I volunteered. But then my plan went sour when I received a box of V1.1 modules. No good deed goes unpunished. :)

some of the open9x sound pack chain themselves together (playing 0000.wav says "zeroREE" like playing part of file 0003.wav at the end

The early voice files invited that problem. So be sure to use the latest file set. Here is what I use:

www.rc-cam.com/projects/thomas_wav.zip

Share this post


Link to post
Share on other sites

Don't give up yet. Despite any success stories that may seem to contradict, you should only use a 1GB card. Do not use anything larger.

That's the problem. They're quite hard to find even at the very bottom of my most forgotten drawer! I haven't done a full format though, I'll try that next time.

The early voice files invited that problem. So be sure to use the latest file set

I tried with the current French pack companion9x linked to, but it seems to be quite old indeed. I now downloaded the latest English pack that users seem to be happy with, and yours. I'll try both when I get time.

But as I don't really intend to use the module in my radio, I'm only half interested in spending hours to get it to work!

I have a sky9x board on order, and of course what I'm most interested in is the upcoming frsky radios :)

Edited by Kilrah

Share this post


Link to post
Share on other sites
But as I don't really intend to use the module in my radio, I'm only half interested in spending hours to get it to work!

Since you don't have plans to use the SD module I'd say that all the extra work is not worth the frustration. Thanks for trying!

Share this post


Link to post
Share on other sites

I received the replacement MP3 sound chips today and was relieved to find they fix the delay problem. So I'm busy reworking my inventory of SD sound modules. It's not a horrible task when using a decent hot air SMD rework station. A dozen voice modules have been updated so far; By the end of the day everything will be updated and functionally tested.

Here's the pile of old parts from this morning's rework. May these "Forrest Gump" chips rest in peace.

post-2-0-09262400-1351544641_thumb.jpg

The IC batch code collection effort has proven to be waste of time. This became obvious after receiving the replacement MP3 chips. That is because the chips I received today (without delay) have the same batch codes as some of my V1.1 modules (that have the delay). So this means there is no way for the typical 9x voice builder to know if their SD module has the delay until after it is installed in their 9x.

Share this post


Link to post
Share on other sites

OK. Good thing I didn't spend a day investigating mine then ;)

Edited by Kilrah

Share this post


Link to post
Share on other sites

Good news Thomas,

Please let me know when available. I was going to ask you not to fit one chip to a module. So i could decide which module to put it in.

Guess i can remove it.

Les

P.S What temp do u use to remove the Chip?.emartee never replied to my emails after the first reply.

Edited by iwik

Share this post


Link to post
Share on other sites

Good thing I didn't spend a day investigating mine then

Yes, it may have been a big disappointment. But you never know, it could have been a winner. :)

Please let me know when available.

Anytime you are ready just PM me and mention how many voice modules you need. Until further notice, the tested module **with** a good 1GB SD memory card will be $20 each (+$6 if delivery is outside CON-USA).

Note: A proven/compatible SD card is important for 9x voice mod success, so the module and SD card will be sold as a tested pair.

When I have time I will create a more formal "For Sale" post. Until then, just PM me for my PayPal details. BTW, if you know of anyone that is considering the voice mod then please point them to this discussion before they purchase from emartee.com. Otherwise they may end up with a SD module that they hate.

By the way, after I sell all the upgraded modules I won't be repeating the offer. That's because despite my higher price, it will be a miracle if I break even. So get 'em while you can!

I was going to ask you not to fit one chip to a module. So i could decide which module to put it in. Guess i can remove it.

All the modules have been upgraded & tested. But if you request it, I can re-remove the chip for you. My SMD soldering equipment does a good job and the chip will still look new.

What temp do u use to remove the Chip?

I've been using a hot air rework gun set to about 400F. This should allow clean chip removal in under 20 secs. Edited by Mr.RC-Cam
Update shipping cost.

Share this post


Link to post
Share on other sites

Thanks Thomas, have PMed you.

I have been using Adata 2gig Microsd cards in both of my modules with trouble. No probs with supplying the modules complete.

Reason i asked about the temp was with my experience of smd work(limited as it was) iused the same temp and chips come off

quite easily and in about the same time.

Looks like Emartee were intersted in big Volume users and i suppose they considered you in this and supplied accordingly.

Thankful they have as i would like to my module speak properly.

Les

Share this post


Link to post
Share on other sites
Looks like Emartee were intersted in big Volume users and i suppose they considered you in this and supplied accordingly.

I could be wrong, but I think emartee is no longer a valid source for the correct (no delay) module or sound chip. Especially if they are ignoring your emails about the problem.

My large module purchase was direct from the China based manufacturer. BTW, after negotiating the replacement chip purchase, I asked if they would kindly sell the no-delay chip to other end users like you. Communication broke down with that inquiry. So it seems they don't like small purchases from end-users.

If enough forum members requested the bare chip then I would do my best to help supply it. But given the low attendance of followers in this discussion, I don't think that will be a practical solution. If there is a need for these chips then let's see a show of hands by joining the forum and posting in this discussion. No private emails please!

Please keep in mind that I have plenty of good SD modules to sell. The best thing about them is that they have been individually tested in a 9x. So no more worries about getting the wrong interface version or a defective module. :)

Share this post


Link to post
Share on other sites

You are right on all accounts, your solution is the right one and with a new design on the horizon i think this issue will be a distant memory very soon.

Les

Share this post


Link to post
Share on other sites

Sorry this is OT but it is a related question. I have a Sparkfun WTV020 module with the microSD card and cannot get it to understand the Serial port. It works in the Key mode without problem.

I read that the chip has a number of different modes that are set by the manufacturer. Is that correct? Could I therefore have a module which does not work in Serial Mode and was programmed for key mode only ?

Peter

Share this post


Link to post
Share on other sites
I have a Sparkfun WTV020 module with the microSD card and cannot get it to understand the Serial port.

The Sparkfun catalog page says it has the 2-line serial mode. So it appears to be the same chip that we are using in the 9x voice project.

You didn't say what you are doing with the module. Your host CPU interface must provide 3.3V logic levels and have the proper software for 2-line module communication. Keep in mind that the popular Arduino's are 5V logic devices.

It works in the Key mode without problem.

That is hopeful news. At least it can read some files from the SD card.

I read that the chip has a number of different modes that are set by the manufacturer. Is that correct?

That is correct. There are several versions of this chip that all look the same. The manufacturer configures the chip to provide the necessary interface version. I understand its an OTP part, so once it is configured it cannot be changed.

Could I therefore have a module which does not work in Serial Mode ...?

It is possible it is the wrong chip. But it is just as likely that your host interface, software, or SD card is to blame.

... and was programmed for key mode only ?

It appears that all chip versions have some key mode support. For example, the 2-line version has key press support for play, pause, next, prev.

Sorry this is OT but it is a related question.

Yes, it is a bit off topic for this discussion. You are welcome to start a new dedicated discussion about what you are doing. We like to talk about cool projects around here.

Share this post


Link to post
Share on other sites

I wanted to use this thread as I am trying to get it to work in a 9x transmitter fitted with a gruvin pcb (ATMega2560) so thought justified!

I cannot get the voice board to work on the transmitter - I have included resistive dividers on data and clock - and have now taken it off the TX to try it on a test ATMega system but can't get it to work on that either - the clock and data look good and very occasionally it does output the correct message. I must check the actual signals at the chip clock and data pins to see if there is anything worng there. Otherwise I am confused!

Peter

Share this post


Link to post
Share on other sites

No problem, this is the place for 9x voice mod discussions. If you'd like some help from the peanut gallery then I have some questions:

(1) Can you post a link to the gruvin voice mod? I'm curious to see exactly how the module is connected to it.

(2) Are there several confirmed gruvin installations that have had success with a WTV020 2-line sound module?

If there are others, did any use the Sparkfun board (or are they all emartee boards)?

(3) Do you have many other 1GB SD cards from different makers that you can try? The reason I ask is because the memory card might be contributing to the problem, even if it works in a different WTV020 module. And be sure the correct sound files are used!

Share this post


Link to post
Share on other sites

Thomas, Thank you for the offer of help.

This is the thread that I have been seeking help from:http://9xforums.com/forum/viewtopic.php?f=45&t=1916 and http://9xforums.com/forum/viewtopic.php?f=45&t=1947

The Gruvin9x board brings out the PortH of the 2560 to spare pads and the firmware uses that. I had to deduce the connections by looking at the firmware listings. I could not find a fully detailed mod and confirmed the final details from the photos that are posted in the above thread. I used 1.8k/3.3k for the dropper resistors in the Data/Clock lines and directly connected the Busy line back to the Gruvin9x board. So it uses a +5v supply from the Gruvin9x board and the three connections for data/clock/busy and then the speaker is directly connected to the MP3 board https://www.sparkfun.com/products/11125. There are no other connections.

It seems most use the Emartee board. I have ordered two of the microSD versions.

I have tried 1GB, 125MB and 2GB microSD cards and have more on the way - 1GB are rare so I think it will only be 2GB types. Yes I have been using .ad4 sound files.

With all my problems I am now trying to get things working outside the 9x on a test system but so far no joy - but the voice card still works with key inputs so I don't think I have killed it yet! I was hoping it was the very short data setup time that was causing problems and have used 50uS but all I get is silence!

Peter

Share this post


Link to post
Share on other sites

Your Sparkfun board is similar to the SOMO14D (both use the WTV020 2-line serial chip), so you should check its data sheet for tips:

http://www.sparkfun....14D-DS-rev3.pdf

I used 1.8k/3.3k for the dropper resistors in the Data/Clock lines

Not directly related to our 9x mod, but I recall reading that SOMO14 board users had problems with the LLC resistor choices when interfacing to a 5V CPU. The SOMO14D data sheet mentions 100-470 ohms. The emartee hosted data sheet mentions 470 ohms. I would suspect 330 ohms would be a reasonable choice.

Please note that the voice interface used on the stock 9x board has 5V<->3.3V conversion logic. It does not use resistors like the Gruvin; Instead, there's a data latch and some supporting transistors. However, the complexity of the stock 9x interface is due to sharing the LCD port. Your Gruvin board has a spare/dedicated port so your simpler resistor method is certainly a possible solution. Just be prepared to experiment a bit to find the required resistor values for reliable operation.

and directly connected the Busy line back to the Gruvin9x board.

TTL high logic level during a Port H pin read is >0.6vcc, therefore >3.0V if CPU is powered by 5.0V. So that means that detecting the sound card's Busy signal may be marginal. So be sure to check the Busy's amplitude using your o-scope.

I have tried 1GB, 125MB and 2GB microSD cards and have more on the way - 1GB are rare so I think it will only be 2GB types.

Finding a compatible SD card is a big key to success. Until you have fully working sound I would recommend only 1GB cards. These are $4-5 on eBay. I purchased two 1GB microSD memory cards (with SD adapters) there and they work in my old emartee modules, but not with the newer modules. So be aware that finding a compatible card is like winning the lottery.

Yes I have been using .ad4 sound files.

FWIW, the latest .wav files used by Open9X are good test files too. I know they work. :)

Always start with a fresh FAT/FAT16 format (do NOT use quick format). Then copy all the sound files at one time. You can add a short volume name to the card, but do NOT create any directories or add any other files to the card.

but the voice card still works with key inputs so I don't think I have killed it yet!

Load up your SD card with unique sound files numbered from 0000.wav to 0100.wav or higher. Use contiguous file numbers (no number gaps). The ER9x or Open9X wav files can be used for this. When you use the key input, does it correctly speak EACH file, in the correct order? Be sure to carefully check to see if any files sound odd, are skipped, or spoken out of order.

Success with this file test does not guarantee that card will also work with the 2-line serial access. But file problems noted in the simple key test would surely be a very bad sign.

I was hoping it was the very short data setup time that was causing problems and have used 50uS but all I get is silence!

In addition to the WTV020 data sheet posted by Sparkfun be sure to review the SOMO14D data sheet; It has slightly more detailed timing information for the clock and data.

Be sure to note that the first data low period is used as a start bit and it must be 2mS long.

A proper reset on the MP3 chip is important. The Sparkfun reset circuit is very crude. Check the reset pulse time on the Sparkfun module - It must be clean looking with corrrect logic levels, and longer than 5mS. If necessary, manually reset it (temporarily ground the RESET pin) after power is applied to ensure a good reset.

This is the thread that I have been seeking help from:http://9xforums.com/...php?f=45&t=1916 and http://9xforums.com/...php?f=45&t=1947

I reviewed those two threads and it seems that you had it partially working on the Gruvin board. Has things gotten worse since then?

As a side comment, it looks to me like the Gruvin voice mod has been installed by very few users. So I would consider it experimental at this point and software bugs may exist. Especially since it does not use the same voice driver code that is used in er9x and open9x.

It seems most use the Emartee board. I have ordered two of the microSD versions.

Please be aware that the emartee microSD mini sound module will have the new MP3 chip with the delay issue. That bug is not winning many friends.

If you get desperate then consider getting a tested SD module from me. That is to say, knowing that you have a working sound module and memory card would allow you to concentrate on troubleshooting the hardware & software.

Share this post


Link to post
Share on other sites

Thomas, Thank you for such a very detailed response. You have given me a great deal of food for thought which will make me relook at everything.

Whilst I did have it partially working when connected to the transmitter, it was random which made me think there was a timing issue. I became concerned about the data setup time and decided to put the voice module on to a test rig so I could play around more easily.

I'll keep you posted.

Peter

Share this post


Link to post
Share on other sites

@pseddon: Glad to help out. As a parting comment, my gut feeling is that the sound module is still functional. But I'm not convinced you have a fully compatible SD card and/or a reliable host interface (software/hardware). But you never know, achieving joy may be as simple as a different data/clock resistor value or installing the emartee board. Hopefully you come back soon to report you solved it.

@all: I've posted the For Sale ad here: http://www.rc-cam.co...s-with-sd-card/

It would be nice to find homes for all the sound modules, so please share the link!

Share this post


Link to post
Share on other sites

Hello again - an update on my sound module problem.

I set my micro test rig up using the timing from the SOMO data sheet (I am relying on the on-board reset) but interfacing with series 330R resistors rather than resistive dividers. Great it counts correctly from 1 to 100 so it looks like the module works correctly in serial mode. I haven't tried it with sounds above 100 so that will need to be checked.

I quickly put it back on the transmitter and all was silence. As the transmitter uses quite different timings I will simulate them to eliminate timing issues.

Peter

Peter

@pseddon: Glad to help out. As a parting comment, my gut feeling is that the sound module is still functional. But I'm not convinced you have a fully compatible SD card and/or a reliable host interface (software/hardware). But you never know, achieving joy may be as simple as a different data/clock resistor value or installing the emartee board. Hopefully you come back soon to report you solved it.

@all: I've posted the For Sale ad here: http://www.rc-cam.co...s-with-sd-card/

It would be nice to find homes for all the sound modules, so please share the link!

Share this post


Link to post
Share on other sites
... it counts correctly from 1 to 100 so it looks like the module works correctly in serial mode.

That is awesome news!

I set my micro test rig up using the timing from the SOMO data sheet ...

FWIW, regarding the SOMO14D data sheet's Write Data Setup time (tDS) spec shown on page 10, I recommend you use 50uS minimum (not 1uS min). Ideally it would be 1/2 of tCT. For reference, the er9x and open9x firmware uses 125uS for tDS (data setup) and 125uS for tDH (data hold). Therefore tCT (clock time) is 250uS. These values work well and anything similar would be good as gold.

I quickly put it back on the transmitter and all was silence. As the transmitter uses quite different timings I will simulate them to eliminate timing issues.

My hunch is that the Gruvin software's data setup time is too short. So try the timing specs I mentioned above. It would also be a good idea to verify that the 2mS start bit is correct.

Whatever the problem, all you need is a little bit of software magic and your 9x will be talking to you.

Share this post


Link to post
Share on other sites

Thomas, I think you are probably right about the data setup time. The gruvin9x board voice software was written by Cam (th9xer) who compiled me a special version (http://9xforums.com/forum/viewtopic.php?f=45&t=1947) to increase the setup time from 250nS to 1uS which is what I am using at this moment. As the delay is inside the interrupt routine he felt it could not be increased much further and as his SOMO board worked with no delay he hoped 1uS would work for me. In my test system I am using about 3uS which works so I may be able to get away with much smaller than the datasheet (not good practice!).

I will measure the minimum delay I can use of my test system and then talk to Cam.

Peter

Share this post


Link to post
Share on other sites
As the delay is inside the interrupt routine he felt it could not be increased much further and as his SOMO board worked with no delay he hoped 1uS would work for me.

Agreed, blocking delays inside an interrupt are a very bad idea. The code MikeB created generates the necessary clock/data waveforms using a 10uS timer interrupt. I'm sure he would offer useful advice about his code if any help is needed.

FWIW, I don't think using setup times less than 50uS will ensure the highest reliability. MikeB's code provides relaxed 125uS data setup times and I highly recommend using something similar.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...