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 is being announced now (March 2021) so that everyone has 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 Hack / Voice Recognition Project Blog

Recommended Posts

It's official, my 9x R/C transmitter now listens to me. And to my surprise it does what I say. Here's a chatty conversation I had with my 9x today:

So here's the story.

A few weeks ago I was looking for a headset to hack into my open9x R/C transmitter so I could privately hear its telemetry voice messages. Then as fate would have it I came across a Xbox headset on eBay that had a microphone. And that was my undoing since it taunted me to make a voice recognition interface for my 9x transmitter. So a simple 1-hour project became a much bigger ordeal! But now that it is working I can enthusiastically say that a 9x with voice recognition is a really cool hack.

First on the project list was to idenitfy some affordable voice recognition modules were available that I could interface to a Arduino. The $50USD EasyVR module is sold by a lot of shops and there's endless discussions about it. But I don't like following the crowds so I took a chance and ordered a $25 Chinese voice recognition module (sold by emartee.com and other China stores). This module was definitely a gamble since other than a video posted by a seller, there was zero internet discussions about it. I also purchased a Arduino Pro Mini CPU (they're only $6 on eBay).

While this stuff was on the slow boat from China the custom PCB was created. It has a audio amp for the headset and some audio conditioning circuitry to improve the microphone's performance, which helps eliminate false voice recognition hits. The voice recognition module can respond to five commands and from my experiments the success rate is very good.

Here's a photo of the installation:


The graphic display at the top of the transmitter is a 128x64 OLED. These are about $15 from China/eBay shops. It interfaces to the Arduino using a i2c buss. The displayed images were created with Photoshop and then converted to bitmaps that were stored as data arrays in the Arduino code.


I'm having a blast with the 9x's new voice recognition feature. If there is sufficient interest I'll publish the schematic and Arduino code. But creating useful documentation is a lot of work (and I have limited free time) so I'll need to see a good show of hands. So join the forum and post a "+1" to help motivate me to document the project's details.

  • Like 1
Link to post
Share on other sites

Update: Here's the technical information on the Genie project.

Schematic: Genie_SchemA0.pdf

Please note that any component marked "N/A" is not used.

Software: Genie_Voice_Cmd.zip

This is an advanced project that requires strong electronics experience. Arduino programming skills are also required in order to customize the voice control features to the user's requirements. The PCB art files are not being released so be prepared to roll your own.

Sorry, but I won't be providing build instructions or customized firmware. But if there are any general technical questions then please post them in this discussion (DO NOT email or PM me).

Link to post
Share on other sites

I have to say that a 9x makes external servo signal integration a breeze. The Arduino sends a PPM signal through the 9x's trainer port and the 9x's mixing features are used to extract two needed servo signals for the flight control and photo functions. So the actual control signal integration is one wire. A good clue that your R/C Tx can do this too is if you have used a headtracker with it.

But in case someone wanted to use this on a R/C Tx (even an ancient design) that did not allow that kind of trickery there's a backup plan. If you look at the left side of the custom PCB you will see some unpopulated parts locations. There's a place for a digital pot IC (to emulate a pot-knob on the Tx) and also a optocoupler IC to act as an on/off switch. So as an alternative you could use the optocoupler to control a switch input on your R/C Tx to trigger the camera for photos. So as they say, there's an app for that. :)

Link to post
Share on other sites

So dose that mean you could interface with anything? How many different commands can you do?

You can control anything within reason, but you would have to customize the Arduino code to do what you need. This particular voice recognition module can process five commands, which was perfect for my Quadcopter's flight control features.

I wouldn't mind trying a voice command pan & tilt, down, stop, left, stop, photo

You could do pan/tilt and photo snapshots with five commands. But this would require three R/C channels, so the trainer port connection method (and a R/C Tx with flexible channel mixing) would be the most practical interface for the job.

Link to post
Share on other sites

The voice announcements for each flight mode required some special "custom switch" logic in the 9x's open9x software. I had a working solution but it consumed all the custom switch resources. So I went to the experts at the opentx forum and they saved the day. The dialog exchange is here: http://openrcforums.com/forum/viewtopic.php?f=45&t=4227&p=60243

The solution that Mike provided is useful information for other flight controller applications. That is to say, anyone that is using a rotary knob/pot on their open9x transmitter to control several flight phases.

Link to post
Share on other sites

Some additional discussion about the project is found here:


However, it would be ideal if all the technical questions are posted here so that the project details are all in one place. It only takes a few seconds to join the rc-cam forum so sign up today and join the discussion.

Link to post
Share on other sites
  • 3 weeks later...

I'm having a blast with the 9x's new voice recognition feature. If there is sufficient interest I'll publish the schematic and Arduino code. But creating useful documentation is a lot of work (and I have limited free time) so I'll need to see a good show of hands. So join the forum and post a "+1" to help motivate me to document the project's details.

+1 ;)

Here are a few questions I have:

1. for the Sky9x board which already has an excellent audio/amp circuitry, can this be utilized/integrated and simplify the design of the PCB board?

2. Sky9x already has SD voice files and more can be added. Can this VR/arduno utilize the voice files on the SD?

3. in open9x forum there is some discussion about using the BT for audio and that can be easily implemented with

this: http://www.ebay.com/itm/180878952260?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

and this: http://www.ebay.com/itm/Stereo-A2DP-Bluetooth-V3-0-Music-Headset-earphone-Sports-Bundel-for-iPhone-5-4S-/111113265367?pt=LH_DefaultDomain_0&var=&hash=item19dedde0d7

since the BT headset is a stereo headphone and speakerphone, can this BT thing be integrated into the VR?

It would be so cool to have wireless stereo audio and VR with one simple BT connection. :)

by the way, this is my spker holes for 9x, very inconsipicuous while makes the audio really stands out:


Link to post
Share on other sites

Thanks for +1 on the project.


1. That could be possible. But I don't have a Sky9x board to try it on.

2. The 9x's spoken messages are activated by Open9x's custom switches. Any voice file you want can be used. The flight mode messages heard in the video were created just for this project.

3. A wireless headset with an interface that connects like a common wired connection should work. But keep in mind that the microphone (and its physical position to the user's mouth) is important. In the end, selecting any headset will require "buy and try."

BTW, the name of the Voice Control board is Genie. But instead of only granting 3 wishes, this Genie gives you 5. :)

Link to post
Share on other sites

hmm, I was looking at the voice module with more detail. what signal does the Vmodule gives out? It says can store 15 commmands. Once it is programed by the arduno, If we can convert these 15 commmands to a signal acceptable via I2C,Sky9x board has tons of I2C port not used yet. I wonder if we can just link the Vmodule directly to the I2C input, and MikeB can write (or beg him ;) ) some codes (like V1-V15 voice switch) for Sky9x to accept codes from I2C. Then it would work. right?

I know. Too little electronic knowledge to deal with this. But I think it can be done fairly simple?

Link to post
Share on other sites

Here is the data sheet to the module I used. It has all the details to using it:


As explained in the Introduction paragraph, it can store 15 command words. They are organized in 3 groups of 5 commands. Only one group can be active at a time and each group (1-3) has their own 5 control words that YOU record. The words are speaker dependent.

In my implementation the user can change the group by a pressing a switch during 9x power-up. They can also record the group's command words using this switch. The process is managed by text instructions displayed on the OLED.

The interface is serial (5V TTL RS232). This is not the same as i2c. When a command word is matched by the module it sends a serial message to the Arduino. Then the code on the Arduino determines which command (1-5) was recognized and it changes the PPM servo pulse that is assigned to the flight mode. My best analogy is that it works like the mechanical 5-position flight mode switches that others have installed on their 9x. But in this case you speak instead of turn a knob to change the flight mode.

Link to post
Share on other sites
  • 1 month later...
  • 1 month later...

awesome work!!! have you used it for flying yet ? great feature to keep your eyes in the sky instead of on your transmitter ;)

wonder if their would be a wider rage board capable of more command storage? Now I'm hooked LOL :D

time to do some Google searching!!!!!

P.S. Glade i ran across this forum so i could tell Roger that his plans for his Taranis radio is very close to reality hope you can help him out !


Tom.R :)

Link to post
Share on other sites

Yes, I've used it and it is an attention getter. However, the prototype was installed in my FlySky 9x and so flying with it required swapping out the Frsky Rx in my Quadcopters. I don't trust flying with a FlySky Rx, so I will pull the voice hardware out so I can move it to my upgraded FrSky 9x. The voice feature will get reinstalled when some free time comes up.

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.

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