Jump to content

Attention: RC-CAM.com will be closing down August 2021.

The RC-Cam.com forum was the very first online community dedicated to the advancement of wireless video cameras on radio controlled (R/C) models. This is now called "FPV" (First Person View). We are proud of the contributions that our members have made to the FPV hobby.

We've seen significant changes over the last twenty years. Initially there were a lot of eager R/C hobbyist that built their own video systems. Allowing these creative individuals to share their work was the purpose of this site. Now the FPV market is flooded with low cost systems; Sadly DiY FPV video projects are now rarely discussed.

RC-CAM.com (main site and forum) will be closing down August 2021. This was announced several months ago (March 2021) to allow our members ample time to download any information that is important to them. After the site is shutdown the information will no longer be available here.

We appreciate every member's involvement with advancing the FPV hobby. It is indeed sad to say goodbye to all our online friends. Be safe and stay healthy.

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


Recommended Posts

The DiY R/C community has been doing some fabulous things with the low cost Turnigy/FlySky 9X R/C transmitter. They continue to make improvements and add useful features. It did not take long for a talented 9X developer to add a sophisticated voice (speech) feature. So of course I had to jump in and make mine talk too.

Here's a video example of the 9X voice feature that I found on YouTube:

The voice feature is based on a very low cost MP3 sound module from China. The speech segments are stored on a SD memory card. All the details to the 9X voice mod are published here:


EDIT/UPDATE: I have some new MP3 Sound modules (with SD memory card) that can be used in the 9x voice project explained at the 9xforums. The special offer is posted here:

If you are not familiar with the various efforts on modifying the 9x transmitter then I suggest you review my earlier 9X hack blog. This will allow you to see the sort of things you should do before adding the voice feature:


Now that all the background details are out of the way we can talk about the custom voice board (which is named Speak-9x) that was created for my 9X transmitter. First, here are some things I wanted it to do.

  • Voice interface (based on MikeB's published information)
  • LM386 Audio Amp (for higher audio volume)
  • Haptic Motor Driver (alert vibrator)
  • LED Backlight Driver (with constant current source)
  • Piezo emulation to support a variety of alert tones for playback on the voice speaker (and eliminate the stock buzzer)

After the schematic's details were finalized a custom PCB was designed. The final chosen layout was a three board set (main board plus two optional feature boards). The main board is designed to mount on top of the 9X's CPU board in the lower left corner of the case.

Here's the simulated 3D view of the board set:

After the CAD files were finished (early August) a small batch of PCB's were ordered. Yesterday FedEx delivered them and in short time my R/C Tx was talking to me. And it sounds awesome.

Now for some photos. This is the Speak-9X board installed in the 9X transmitter. You can see that the memory card can be removed/installed through a slot that was added to the 9X's plastic case.



Edited by Mr.RC-Cam
Added note about MP3 Module offer.
Link to comment
Share on other sites

  • Replies 113
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

The Speak-9X board can be built as a basic design without the LM386 audio amp. This version works well and the audio quality is excellent. It supports the LED backlight and Haptic motor features, but will require a separate piezo beeper for the alert tones. I think this version would satisfy 95% of all 9X users.

Here's the "bottom" view of the basic board. The components are SMD (surface mount):


Here's the "top" view with all the connectors for the new interconnect cables and the MP3 audio module:


When the PCB is installed in the 9X a 2mm thick soft foam pad is placed in between it and the 9X's CPU board to act as an insulator. I could have used hardware spacers but this method works fine. It requires no screws because when the 9X's back cover is installed the Speak-9X board's tight fit keeps everything from moving:



Link to comment
Share on other sites

The Advanced Version of the Speak-9X board has a LM386 audio amp. This provides louder voices and allows for the piezo tones to be played through the voice speaker.

Of course it requires a few more parts for the amplifier. Here's a bottom view:


Here's the top view that shows the various connectors:


The top view shows the transformer board that is needed when the LM386 is used. Also seen are the two POTs for setting the master piezo volume and voice volume levels. After these are set the voice volume can be controlled by software in a 9X menu.

Here's a view of how the MP3 audio module and audio transformer are mounted on the Speak-9X board (header connectors plug into mating sockets to allow for easy disassembly):


In the photo you can see a capacitor was added to the audio transformer board. This last minute change required a simple copper trace cut and then the cap was soldered in place. Little fixes like this are common on new PCB designs to solve unexpected issues.

Link to comment
Share on other sites

The optional Haptic motor mounts on a small PCB. There's a suppression diode for EMF protection. Here's where I mounted the vibrating motor using two screws:


I found a nice speaker at Mouser.com that fits like it was designed for the job. Sounds good too:


That's all there is to it. If you see any useful ideas in the photos for your customized 9X hacks then feel free to use them!

Link to comment
Share on other sites

Here's the schematics. There are two versions, basic (no amp) and advanced (with amp).

Basic Version (no amplifier / no Piezo emulation):



The ER9x or Open9X software you install should be configured for Beeper (or PiSpeaker if you've installed a Piezo) and Voice.

Advanced Version (with amplifier and Piezo interface):



Here is a photo that shows where to find the 9X's Piezo signal (green wire goes to J1-6 on the schematic):


The audio transformer (T1) is not mandatory. It is used to remove a soft click noise that occurs before and after each voice transmission. But if you don't mind the click (it is hardly noticeable) then you can omit the transformer and R7. In their place you will need to install some additional resistors, as follows:

R3: 10K ohms

R5: 22 ohms

R6: 2.2K ohms

With the Speak-9x's Piezo emulation you will now hear the alert tones in the voice speaker. So the 9X's stock buzzer must be removed. The ER9x or Open9X software you install should be configured for Piezo Speaker and Voice.


Edited by Mr.RC-Cam
Updated schematics, Rev-A1. Added BOMs.
Link to comment
Share on other sites

Thanks for the nice comment!

More tips:

1. The 9X's vent slots for the speaker are minimal and I think more would be better. So before installing the speaker I drilled some extra holes at the speaker vent.


My other 9X Tx has the FrSky telemetry mod. So there's a extra PCB at the speaker area for the binding switch and status LED. This was in the way of the speaker, but fortunately everything fits. Unfortunately I used a different speaker and it sounds horrible. So I plan on ordering another Mouser speaker like I used on the previously Mod'd 9X because it sounds much better.


I'm using a 1GB microSD memory card in a SD card holder. I find that inserting the little microSD is less fussy than inserting a full size SD card. This prevents losing the memory card inside the case during card insertion.


Regarding SD Cards, I suggest a 1GB card (nothing larger). Card speed is not critical since this is a low speed (audio) read-only application. If you don't have one of these in your junk drawer then they are on eBay for about $4 shipped. If you try a >2GB card then keep in mind that it MUST be formatted to the required FAT16; Unfortunately WIN7 will fight you and use FAT32. So be prepared to deal with that. I prefer to use a $4 1GB memory card since it will cheerfully accept FAT16 formatting.


Link to comment
Share on other sites

I don't have many spares, but don't mind helping out. The blank PCB set would be $12 USD (plus shipping costs). Of course there's no formal documentation, just the schematic and the photos you see here. I can post a bill-of-materials next week to help you purchase the parts (I recommend Mouser).

But before we proceed, I ran into a problem today. So it would be best to hold off until I find out what is going on. I won't be available to work on solving the problem for a few days. But in the meantime maybe you can help since you have built a board from Mike's schematic.

Here's the issue. Things seemed to work well when I was testing Mike's beta ER9X voice software (but I had the same voice related bugs reported by many other users). Today I loaded Bertrand's Open9X-r1331 code and it does not work correctly. It might be my hardware design so I don't want to bother Bertrand until I thoroughly investigate it.

The problem is that the voice sentences run past the end and either speaks about a second of another voice segment or makes a short noise (which may actually be a slice of another voice segment).

Also, when I program a switch to play a voice it does not play correctly. For example, I programmed the gear switch to say a sample voice. When the switch is activated it does not say anything. When I turn off the gear switch the MP3 module now plays the voice sample one time (plus one second of another voice segment). I think that it should actually play the voice sample, and repeat, when the gear switch is on.

So, if you don't mind, here's what you can do. Please load R1331 (Aug-31) open9x-stock-audio-voice-haptic-ttsen-en.hex (or open9x-stock-frsky-audio-voice-haptic-ttsen-en.hex). Then check to see if the voices are correct and do not have part of another voice sentence appended to them. Also, program the gear switch to speak a voice sample and test it out. I believe it should speak the sentence, and repeat, when the switch is turned on. So if you can confirm what you get with the new R1331 code that would be great.

Link to comment
Share on other sites

Hi Thomas,

Thanks for the reply, if you could spare me a board set that would be great. Sorry i cant help with the Voice just yet. Ive only just

finished it and it is yet to be installed. Maybe quicker to post, presently i dont hear any comments, but its early days.


Link to comment
Share on other sites

Too bad you don't have your DiY voice board installed. It would be good to confirm that the new software is not the problem. Please be patient, I'll get back to my troubleshooting later next week.

Kilrah -- any chance you have Mike's voice mod on your 9X? If you do, it would be awesome if you would try out Open9X version R1331 and report back if it works correctly (or if you experience the issues I mentioned).

Link to comment
Share on other sites


I managed to temp connect my Module and flash to 1335 for openx but could not get any sound. Thought my module was not working.

Then thought i would try er9x and Battery Low message, sign on message all are ok.Only plays one message.

So not sure if Openx is ok. Sorry i cant be any more specific.


Link to comment
Share on other sites


I have just tried to use the english file and i find when i power up and i get the throttle warning, im getting a small portion of another one.

The guy i mentioned was using czec language. Trying to check with his file but cant d/l yet.

Will keep trying and post u.Suspect your module is ok.


P.S was able d/l czec and it was ok. Even though i cant understand it. It does only repeat with a defined gap. Wheras the

english one has two gaps before repeating.

Have asked Bertrand to check it.

Edited by iwik
Link to comment
Share on other sites

Hi Thomas,

It looks like the sound file that can be d/l via Companion9x for Open9x is corrupt.

I had some one provide me(1361 sound file) which plays perfectly.

If u go to Open9x sub group of 9xforums you will find the files attached to my post

and the files were supplied by mhotar.

I programmed the gear switch and my one says the message and repeats till switched off.

After switching off it repeats a couple of time before it stops.

So currently have latest Open9x flashed with 1361 sound files on sd card.

Sorry its taken so long but had to find everything.

I think your hardware is ok.


Link to comment
Share on other sites

I tried the new sound file and it solved the voice run-on issue. Thanks for the heads-up on the new file release.

I'm still having problems with the programmed switch test; In case it is a software issue I've posted the details at the Open9X forum. But the problem may be on my end so I plan to check out my circuitry too (hopefully this weekend).

Link to comment
Share on other sites

I found the source of the problem that is related to the programmed switch test. My transistors are FET's so they are slower than the ones used in the voice developer's circuit. The 9X voice software only allows a few hundred nanoseconds for the MP3 module's /Busy signal read cycle, but my FET's need at least 3.5uS.

The FET array's package/pinout is a SOT-363-6 (micro sized SMD) so it may take a miracle to find the same package with faster transistors (I will look for one). In the meantime I made a little adapter board with fast BJT transistors that works with the existing software. It's not pretty but it solved the /Busy read problem and the programmed switch test now operates correctly.

However, while checking things out I noticed that voice sentences were sometimes (intermittently) missed. A review of the clock/data from the voice interface's 74HC574 revealed a communication timing problem which causes some CPU->sound commands to be ignored by the MP3 sound module. With the existing software the MP3's clock and data are synchronized (0uS setup time / data and rising edge of the clock change together). But for reliable MP3 module operation the data must be stable BEFORE the rising edge of the clock.

The sample code from the MP3 module supplier shows they used 50uS for the data setup time and 50uS for its hold time. There is also a 1-2mS wake-up condition that is expected by the MP3 module that appears to be missing. Both of these issues are likely the reason for the intermittent sound sentences. So the 9X voice code should be changed to follow the supplier's recommendations. I've reported the clock/data timing issue to the Open9X developer (Bertrand). I hope that my information was understood because this is a software issue that needs help from the 9X software experts.

So on a positive note my slow transistor choice helped to find a software timing problem that can affect other users. My FET problem (which is unrelated to the clock timing issue) can be fixed in software too. But I don't know if that is something that the developer will want to do. Fingers are crossed he will help out so I can avoid an ugly hardware mod.

Edit: I found a BJT transistor array to replace the FET (drop-in swap) and I ordered a couple to try out. I have not heard any comments from the developer regarding the clock/data timing problem, so nothing new to report on that issue just yet.

Edited by Mr.RC-Cam
Found possible transistor sub.
Link to comment
Share on other sites

Hi thomas,

Thanks for the update. Yes have been following your Thread and will see if he wants to modify his software.

I had been researching a drop in replacement for the fets and came up with a BC847BPDWIT1.is this what

you had in mind. Curious as to know why u didnt go with a Transistor package like the one i mentioned.

Thanks again for all your hard work and keenly interested in how the drop in NJT work.


Link to comment
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.

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