Jump to content
Mr.RC-Cam

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

Recommended Posts

When I tested my microSD module I noticed that if a new command was sent before the end of that "extra delay" then playback would be interrupted by the new one without "reinitialization" of the module, so the files could be chained cleanly.

There would be a software solution, BUT it would unfortunately use a ton of flash - ignore the BUSY signal, and instead store the length of each file so that you know when to send the next to stay within the period where chaining sounds acceptable. Some could maybe be saved by remapping all the file numbers on the card to group them by length, so all that's needed to store is something like files 1-50: 320ms, files 50-100: 450ms etc. With the little margin the module allows for I guess not too many groups would be needed.

Edited by Kilrah

Share this post


Link to post
Share on other sites

While trying to find a hardware solution this morning, I repeated the delay measurements on the module.

Below is a screenshot from the o-scope. Note: Pin number references are on the actual WTV020 processing chip, not the MP3 module's header.

EDIT : This is the waveform from the old (good) V1.0 module. SEE POST 54 FOR WAVEFORM INFORMATION ON THE V1.1 MODULE.

post-2-0-88268200-1350844209_thumb.jpg

The top signal is the audio DAC. The scope's center line is 0-volts for this trace. You can see the DAC signal become idle (speaker drive current is shut down) immediately at the end of a sound phrase. The BUSY is idle at this time too. Then the 9x issues a new phrase file and the BUSY and DAC go active. So far, so good. But it's not until 492mS later that the sound is actually spoken.

When I tested my microSD module I noticed that if a new command was sent before the end of that "extra delay" then playback would be interrupted by the new one without "reinitialization" of the module, so the files could be chained cleanly.

I wonder if the sound delay on the microSD module variant is at the End, rather than the Start? That might explain my prior confusion and your noted observation. I'll measure it when I have more free time.

.

Edited by Mr.RC-Cam
This is the waveform for a "good" module.

Share this post


Link to post
Share on other sites

Yes, from my observations the delay is at the end on the microsd module (unless they changed that too since then...)

Here's a zip file with videos showing what happened when I sent commands with some time between them, and with closer timing (my arduino sketch was buffering my keyboard inputs and sending one to the module every 700ms). There are logic captures of the module's signals too (can be viewed with Logic).

http://kilrah.dynali...ers/microsd.zip

I don't have a simultaneous scope recording of the DAC output, however the way I had connected the amp made the "clicks" from the activation and deactivation very obvious. It's pretty clear the word starts right after the first click, but there is silence after it before the module deactivates the output.

Edited by Kilrah

Share this post


Link to post
Share on other sites

I went to investigate the microSD module and discovered that I previously measured my old/good MP3 module (instead of the new V1.1 module). In other words, the waveform in post #52 is the old module and the 1/2 second silence delay at the beginning of a spoken sound is "normal."

Back to the drawing board, I measured the microSD module and the new V1.1 module. The 1/2 second delay at the start is still there, but there's a massive 1200mS delay at the end too. The extra delay is longer than I previously estimated. No wonder some telemetry alerts sound like a bad impression of Forrest Gump.

Here's the o-scope waveform for the new V1.1 module's DAC signal (the microSD module results were similar):

Reference B: Delay before sound, 550mS

Reference A: Delay after sound, 1200mS

Reference V: Short speech phrase

Reference /BZ: DAC turned off, module NOT BUSY. Note: The module's BUSY signal (not shown) is logic-high between the two /BZ pulses.

post-2-0-73238800-1350860907_thumb.jpg

.

Share this post


Link to post
Share on other sites
be interesting to hear if they reply.

They have agreed to sell me a couple dozen "old" MP3 chips so I can rework all the V1.1 modules from the original order. I don't know if sources like emartee.com will be able to do this for their customers, so keep me in mind if you need a "good" module. I'll post a revised For Sale offer for the V1.1 module after I receive/confirm that the replacement chips are the correct version. I estimate it will be 3-4 weeks for that.

Please note that I won't have any spare chips. I only have enough to upgrade all my existing modules that are intended for the special rc-cam forum offer. I don't expect the demand to very high, so there should be plenty of modules for those that need it. And with some luck an alternative solution (different module, magic software, etc) may arise from the 9x community too. So one way or another, the 9x voice builders don't have any reason to worry.

.

Share this post


Link to post
Share on other sites

Thanks for the Update Thomas,

I think i might try to get a V1.0 chips off them and replace my one. Ive emailed them and they want to know my problem even though i tried

to explain it. So maybe i should ask if i can buy a V1.0 chips off them.

Les

Share this post


Link to post
Share on other sites

Have you determined that your MP3 module has the long delay? Even if it's the microSD version, there's always the chance it has the old chip in it.

My old V1.0 chip (no delay) has batch code "No.14", date code "1204" The microSD's chip (with delay) batch code is "No.15", date code "1206". The new V1.1 is "No.16" / "1207." I'm curious, what is your chip's batch/date numbers?

If your module has the long Forrest Gump delay, and the supplier won't help you, then let me know. I will free up one of my chips for you.

Share this post


Link to post
Share on other sites

I was looking at my sd cardversion and i think it is No 16 or 15 1206. The module is labeled v1.1. Havnt had alook at the microsd version yet.

Chinese havnt replied yet.

Fired up the module last night, having some problems, backlight remains on permanently. Havnt had a chance to fault find yet as i thought the cable for

LCD/piezo/PB7 was 6 pin as it plugged in fine. It actually is only a 5pin one so consequently after rewiring that i ran out of time. Have to have a look tonight. I ll just add an extra wire for the last signal. Sound works but i think the File structure for Er9x is different to the Open9x one.

Currently have eR9x on as after i completed the encoder mode, i could not flash Open9x. No errors were reported, just black screen. So will try again to

flash to Open9x and fully check sound then look at why the Backlight is on permanently.

Thanks for the offer of the chip. If the Chinese dont come thru i will just buy a module off you. Dont want to break up your sets.

Les

Share this post


Link to post
Share on other sites
I was looking at my sd card version and i think it is No 16 or 15 1206.

Too bad, that seems to be a Forrest Gump version.

Havnt had a look at the microsd version yet.

I hope it's batch No.14 or earlier.

Sound works but i think the File structure for Er9x is different to the Open9x one.

Yes, the sound file numbering is vastly different in those competing 9x firmware releases.

Share this post


Link to post
Share on other sites

Thanks Thomas,

Just checked my microsd version. Its No13 1211. Looks like ive got 2 Forest Gump Versions. Lets hope the chinese will see me two modules.

Les

Share this post


Link to post
Share on other sites
Just checked my microsd version. Its No13 1211.

That might be a good one. Your batch No.13 is before any of my batch numbers. But your date code is odd; I think 1211 means Nov 2012, which can't be right. Are you sure your date code isn't 1112 (Dec 2011)? Otherwise, my date code decryption method is incorrect.

Kilrah has a MicroSD module with the delay nuisance. I wonder what his chip label says?

Share this post


Link to post
Share on other sites

Definitely says No 13 1211.

What about week 11 of 2012 and yours are week 4 of 2012

Les

Edited by iwik

Share this post


Link to post
Share on other sites
Definitely says No 13 1211.

What about week 11 of 2012 and yours are week 4 of 2012

That would be a possible explanation.

What is weird is your "No.13" number is lower than mine, but what I think is a date code is higher. It will be interesting to know if your microSD module has the delay issue. At this point it appears to be a coin toss. :)

Share this post


Link to post
Share on other sites

Thomas,

Ive now got both my microsd and sd card modules working. I'm not very familiar with how best to set up to test for this delay.

Can you give me a procedure so i can see if my modules suffer like yours do.

Thanks

Les

Share this post


Link to post
Share on other sites

You can check the delay on Open9x using any spoken numeric value. For example, you can setup a switch to speak TMR1 or TMR2.

On the old module, you would hear something like this.

. 2 . minutes . 23 . seconds .

But on a new V1.1 module, it would sound like this:

. 2 ... minutes ... 23 ... seconds ..

Note: each dot is approximately 500mS of silence.

The slower unnatural speech rhythm from the new module reminds me of Forrest Gump, so that is why the new module has earned that name. However, it's still usable with the delay and I suspect there's some 9x pilots that are unaware of it.

The extra delay will become more obvious after comparing both module versions on a 9x that has been setup to speak telemetry/numeric data. From my experience, if telemetry data is not being spoken then the new module should be fine. For example, some 9x pilots only use the voice feature to announce model names and switch positions; They won't experience the delay and so the new module will sound exactly the same as the old module to them.

Ive now got both my microsd and sd card modules working.

Just curious, is the Speak-9x board installed and working for you?

Share this post


Link to post
Share on other sites

Yes it is all hooked up and working, just havnt closed the case up yet because experimenting with microsd card.

Will have to get a transformer as i find the clicks annoying. Dont seem to be able to source one anywhere

other than Mouser and the freight charge is high.

Must change the speaker as well as my current one doesnt sound as good as i would like.

Thanks for the procedure, will try tonight after work.

Les

P.S Tried again to flash to Open9x and all ok now.

Share this post


Link to post
Share on other sites
Will have to get a transformer as i find the clicks annoying. Dont seem to be able to source one anywhere other than Mouser and the freight charge is high.

If you have an old dial-up modem in the junk box then try using it's telephone line transformer. It might be close enough substitute for the Speak-9x board.

Must change the speaker as well as my current one doesnt sound as good as i would like.

If you are using Speak-9x's LM386 amplifier option then try this:

1. Use the 9x menu and set the voice volume to maximum (7).

2. Set the "VOICE LEVEL" pot on the Speak-9X board so that the audio is clear. Then increase it slightly (couple degrees pot rotation) until there is a tiny bit of distortion.

3. Put the 9x case back together (to ensure a proper sound enclosure). No need for screws, just hold the plastic case temporarily in place.

4. Go back to the 9x menu and reduce the voice volume so the audio is distortion free.

If you have installed the Piezo feature on the Speak-9X then this is a good time to adjust the piezo volume control on the PCB. There's no menu entry for the piezo's volume, so the beep noise loudness is set with the "PIEZO LEVEL" pot. Set it to a level that is pleasant.

Share this post


Link to post
Share on other sites

I seem to be unable to get the timer to speak. If say i set the timer to start on throttle position what else do i have to enable

to get say it to count down in seconds and minutes. Ive only been able to get it to speak the time for a timer set to one minute.

Thanks

Les

Share this post


Link to post
Share on other sites
If say i set the timer to start on throttle position what else do i have to enable

to get say it to count down in seconds and minutes.

There's a delta operator for doing that. Try this in Open9x:

1. In model SETUP menu 2/9: Timer2 THs 00:00

2. In CUSTOM SWITCHES menu 8/9: CS4 IdI>=ofs Tmr2 1

3. In FUNC SWITCHES menu 9/9: CS4 Play Value Tmr2

This setup will continuously count-up the elapsed time whenever the throttle stick is active.

After your tests, I recommended you reconfigure the announcement interval to be 30 seconds, as follows:

In CUSTOM SWITCHES menu 8/9, change the entry to: CS4 IdI>=ofs Tmr2 30

Now your 9x will announce the flight time every 30 seconds when the throttle is active. If you want it to count down then just change timer's behavior in Open9x's model SETUP menu.

Share this post


Link to post
Share on other sites

Furthering the measurement investigations, I found another timing difference with the new V1.1 module. At power-up reset, it takes about 300mS longer (than the older module) before the module is ready.

The screenshot below shows the MP3 module BUSY signal. The various timing references are as follows:

R: Hardware reset time.

RBZ: Module's power-up/software reset time (including hardware reset).

FV: Time before first voice file plays on Open9x.

post-2-0-40679900-1351193326_thumb.jpg

The old module's signal times are:

R: 160mS (approx)

RBZ: 1060mS

FV: 1880mS

The new V1.1 module's signal times are:

R: 160mS (approx)

RBZ: 1380mS

FV: 1880mS

So the new module takes about 300mS longer to initialize from a power up reset.

Open9X's first voice announcement does not occur until 1880mS have elapsed after 9x power up. Looking at the source code, the voice state machine function has a hard coded delay that allows 1.5 seconds for the MP3 module to initialize (V_STARTUP voice state). So I don't expect the new MP3 module's longer reset time will be a problem for Open9x users.

-> Oct-28-2012 Update: Confirmed today that Open9X's volume setting will not be correctly set with the new module on a cold boot. Works fine after a power cycle.

But looking at er9x's source code, it has only a 1.2 second time for module initialization, which may be marginal. This might be part of the reason why some er9x users do not always hear the first voice announcement when their radio is turned on (as reported at the 9x forums). I'll mention this to MikeB (the original voice module developer) in case he is interested in the timing difference of the new module.

Edited by Mr.RC-Cam
Added cold boot update.

Share this post


Link to post
Share on other sites

Kilrah has a MicroSD module with the delay nuisance. I wonder what his chip label says?

2 actually, but they're identical. The microSDs have No.12 / 1011, the SD module has No.14/1204.

DSC07345_ss.jpg

DSC07343_ss.jpg

DSC07340_ss.jpg

Share this post


Link to post
Share on other sites
Both of my modules have the delay. Emartee havnt replied to my second email. I ll try them again.

Sorry to hear that they are both the new module. Hopefully Emartee will be able to provide the old module and/or chip.

2 actually, but they're identical. The microSDs have No.12 / 1011, the SD module has No.14/1204.

Thanks for reporting the batch codes on your modules. I have a No.14/1204 and it works good (no delay). So it seems crazy that your identical batch code has the extra 1.2 sec delay. Do you mind checking its delay time again?

Given the reported IC batch codes, here's what we know so far:

No.12 1011: delay

No.13 1211: delay

No.14 1204: no delay (rc-cam), delay? (kilrah)

No.15 1206 delay

Oct 29 Update: The batch code list has been suspended. Please see this post:

Edited by Mr.RC-Cam
Batch code list suspended

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...