ArduVoice-9x Voice Module with Arduino for the 9x Radio
Posted: Tue Mar 17, 2015 4:14 am
As you probably have read on the forum Mike is implementing a serial communication between the voice module and the radio instead of using the LCD lines and the CLK signal.
For that to happen the throttle trims must be connected to the voice module. That is an easy operation. Just removing two wires from a connector and connecting them to the voice module..
Some of the pins that connected to the radio LCD lines before, can now be used for something else like switches for example.
The reason I'm starting this topic is that due to the fact that the Megasound board was discontinued a while ago, the only option for people to have voice on their 9x radio was to build their own voice module. Most of the existing projects use SMD components and require very fine soldering. So, I had the idea of using an arduino pro mini to build a voice module. The goal is to make something easier than those boards with tiny components, that most of us could build.. The arduino is a platform that already has a microcontroller on it together with all the comnponents to make it work, The microcontroller happens to be the same as used on the Megasound board, but it runs at 16Mhz instead of 12Mhz. So, I asked Mike if he could please compile a 16Mhz version for this project, and we have been testing it since then. A big thank you to Mike. Without his help and knowledge, I would never have a working prototype.
Anyway, I already built 2 ArduVoice-9x modules and they are both working. One of them is an attempt to create something easier to build that could fit in a 9XR radio. It has 2 smaller separate boards plus the SD Card module.. This SD Card module, as well as the arduino can be bought very cheap on ebay. The same applies to the serial adapters. Both single and double boards voice modules are built on a piece of stripboard and use through hole components only.
I am also designing a PCB version using only through hole components.
Here is the schematic:
I am still testing all this, and I am also trying to put some documentation together, so watch this space.
It looks like the Megasound board will go into production again, but I will post all the information here anyway, in case you guys want to build your own. We never know when the production will stop again.. Also, the stripboard versions have all the unused pins available, so if later Mike decides to implement more goodies it will be easier to just solder a couple wires to the board Here is a little drawing that I prepared for now until I finish the documentation, and probably build another board https://www.youtube.com/watch?v=AQnrJr0JabQ
Stay tuned
João
ArduVoice Using two smaller boards
This is my attempt at making it fit in a 9XR radio. Of course, this will also fit the 9x. Someone will have to try it as I don't have a 9XR radio.. A friend made some dummy boards out of card board and placed them inside his 9XR radio. He said there is a possibility it could be made to fit. Here are some pictures he sent me. Thank you so much Nigel.
You will need to make it as thin as possible. Probably will have to bend the transistor and ceramic capacitors to the side, Do not use a IC socket for the LM386 and solder it directly to the board. Also find the smallest electrolytic capacitors possible.. I just got some 220uF/16V caps (C9 on the schematic) and they are quite thin at about 6,5mm diameter. The one I used on the board shown here are 8mm diameter. But this cap can be removed from the board and soldered directly to the speaker. The best speaker for the 9XR would probably be some rectangular (or oval) speaker due to the format of it's case. Something like this could fit well. I know it does in the 9XR-PRO radio.
http://www.ebay.com/itm/1pcs-2w-8ohm-8R ... 3ce48f0ccb
Also make sure you use thin flexible wires so you can easily move things around. The ones I used in the prototype are quite hard
Please download the Zip file and compare the boards with the schematics to make sure there are no mistakes.
How to connect the ArduVoice to the 9x MainBoard By Mike
Originally the Megasound board needed to connect using the processor pin PB7 and several of the LCD data lines.
A useful addition to the Megasound functionality is the ability to backup and restore models to the SD card on the Megasound board. To do this it is necessary to add two connections to the serial port on both the Megasound and the main board.
With this serial connection, it has then become possible to use it for all the functions (voice,
backlight, backup and restore), without needing the original LCD or PB7 connections.
In order to free the second serial port of the processor, it is also necessary to route two of the trim switches from the main board to the Megasound board.
Here are the required modifications to the main board:
I used single strand "kynar" wire to connect to the resistors beside the processor, taking these connections a small piece of stripboard glued to the main board. This allows you to add and remove the (stranded) wire connections without needing to repeat the fine soldering again.
Also shown are the two empty places in the connector (top right) where I removed the trim wires. One wire is white and one purple in my case, the purple wire having been in the end position of the connector.
Mike
Flash the bootloader and firmware.
To flash the bootloader we need the normal programmer we use to flash the 9x/9XR radio. I guess most people has an USBasp programmer. I have another one but the connections are the same.
Remove the SD card module and connect programmer to the same connector using an adapter you have previously made. If you didn't make one it is a good time to do it
Or just do like I did and use breadboard jumper wires Somewhere above I wrote that the RST pin from the arduino should also be available on the SD Card module connector even if the module doesn't use it.. Well, this is the reason. To flash the bootloader.
So you should have on the connector VCC, GND, MOSI, MISO, SCK and RESET.
Here is a Picture showing the pinout of a 6 pin ISP programmer cable.. If you have a 10 pin, use google for the connections
And here is a picture of eepe configuration menu for the programmer.. Your USBasp programmer might use a different COM port. So, change it to the right one.
You should need to flash the bootloader only once, using this programmer, unless of course Mike releases a new version.
To Flash the Firmware (after you have flashed the bootloader) use the USB to Serial adapter, for example, a FTDI adapter** (like the one normally used to flash arduino boards), connected to your ArduVoice module. Configure eepe as in the pictures below.. Again you will probably have to use a different COM port.
Before you flash the firmware, you need to put the Voice Module and radio in bootloader mode.. To do it turn the radio ON while holding both horizontal trims towards the center, and the throttle trim to one of the sides (up or down).
Don't complain, it is possible. Mike says he can do it using only one hand.. I had to use both hands and my tongue
To flash, do it in the same way as to flash your radio. Hit the "Flash Firmware To TX" button in eepe, select the right firmware file and flash it..
EDIT: I just found out that we apparently don't really need to put the module in bootloader mode by holding the left vertical trim. We just have to start the radio in bootloader mode. So, just hold both horizontal trims inwards and turn the radio on. Then flash the voice module normally using eepe and the serial adapter.. If you really insist in using your tongue you can still do it without problems.. It will still flash the module the same way
**The original FTDI adapter from Sparkfun (FTDI basic) didn't work for me.. Only the Chinese ones and the serial adapter with the CH340G chip. This one requires one more diode on it's RX pin.
And here is a Zip file with the latest bootloader and firmware for the voice module running at 5V 16Mhz.
For that to happen the throttle trims must be connected to the voice module. That is an easy operation. Just removing two wires from a connector and connecting them to the voice module..
Some of the pins that connected to the radio LCD lines before, can now be used for something else like switches for example.
The reason I'm starting this topic is that due to the fact that the Megasound board was discontinued a while ago, the only option for people to have voice on their 9x radio was to build their own voice module. Most of the existing projects use SMD components and require very fine soldering. So, I had the idea of using an arduino pro mini to build a voice module. The goal is to make something easier than those boards with tiny components, that most of us could build.. The arduino is a platform that already has a microcontroller on it together with all the comnponents to make it work, The microcontroller happens to be the same as used on the Megasound board, but it runs at 16Mhz instead of 12Mhz. So, I asked Mike if he could please compile a 16Mhz version for this project, and we have been testing it since then. A big thank you to Mike. Without his help and knowledge, I would never have a working prototype.
Anyway, I already built 2 ArduVoice-9x modules and they are both working. One of them is an attempt to create something easier to build that could fit in a 9XR radio. It has 2 smaller separate boards plus the SD Card module.. This SD Card module, as well as the arduino can be bought very cheap on ebay. The same applies to the serial adapters. Both single and double boards voice modules are built on a piece of stripboard and use through hole components only.
I am also designing a PCB version using only through hole components.
Here is the schematic:
I am still testing all this, and I am also trying to put some documentation together, so watch this space.
It looks like the Megasound board will go into production again, but I will post all the information here anyway, in case you guys want to build your own. We never know when the production will stop again.. Also, the stripboard versions have all the unused pins available, so if later Mike decides to implement more goodies it will be easier to just solder a couple wires to the board Here is a little drawing that I prepared for now until I finish the documentation, and probably build another board https://www.youtube.com/watch?v=AQnrJr0JabQ
Stay tuned
João
ArduVoice Using two smaller boards
This is my attempt at making it fit in a 9XR radio. Of course, this will also fit the 9x. Someone will have to try it as I don't have a 9XR radio.. A friend made some dummy boards out of card board and placed them inside his 9XR radio. He said there is a possibility it could be made to fit. Here are some pictures he sent me. Thank you so much Nigel.
You will need to make it as thin as possible. Probably will have to bend the transistor and ceramic capacitors to the side, Do not use a IC socket for the LM386 and solder it directly to the board. Also find the smallest electrolytic capacitors possible.. I just got some 220uF/16V caps (C9 on the schematic) and they are quite thin at about 6,5mm diameter. The one I used on the board shown here are 8mm diameter. But this cap can be removed from the board and soldered directly to the speaker. The best speaker for the 9XR would probably be some rectangular (or oval) speaker due to the format of it's case. Something like this could fit well. I know it does in the 9XR-PRO radio.
http://www.ebay.com/itm/1pcs-2w-8ohm-8R ... 3ce48f0ccb
Also make sure you use thin flexible wires so you can easily move things around. The ones I used in the prototype are quite hard
Please download the Zip file and compare the boards with the schematics to make sure there are no mistakes.
How to connect the ArduVoice to the 9x MainBoard By Mike
Originally the Megasound board needed to connect using the processor pin PB7 and several of the LCD data lines.
A useful addition to the Megasound functionality is the ability to backup and restore models to the SD card on the Megasound board. To do this it is necessary to add two connections to the serial port on both the Megasound and the main board.
With this serial connection, it has then become possible to use it for all the functions (voice,
backlight, backup and restore), without needing the original LCD or PB7 connections.
In order to free the second serial port of the processor, it is also necessary to route two of the trim switches from the main board to the Megasound board.
Here are the required modifications to the main board:
I used single strand "kynar" wire to connect to the resistors beside the processor, taking these connections a small piece of stripboard glued to the main board. This allows you to add and remove the (stranded) wire connections without needing to repeat the fine soldering again.
Also shown are the two empty places in the connector (top right) where I removed the trim wires. One wire is white and one purple in my case, the purple wire having been in the end position of the connector.
Mike
Flash the bootloader and firmware.
To flash the bootloader we need the normal programmer we use to flash the 9x/9XR radio. I guess most people has an USBasp programmer. I have another one but the connections are the same.
Remove the SD card module and connect programmer to the same connector using an adapter you have previously made. If you didn't make one it is a good time to do it
Or just do like I did and use breadboard jumper wires Somewhere above I wrote that the RST pin from the arduino should also be available on the SD Card module connector even if the module doesn't use it.. Well, this is the reason. To flash the bootloader.
So you should have on the connector VCC, GND, MOSI, MISO, SCK and RESET.
Here is a Picture showing the pinout of a 6 pin ISP programmer cable.. If you have a 10 pin, use google for the connections
And here is a picture of eepe configuration menu for the programmer.. Your USBasp programmer might use a different COM port. So, change it to the right one.
You should need to flash the bootloader only once, using this programmer, unless of course Mike releases a new version.
To Flash the Firmware (after you have flashed the bootloader) use the USB to Serial adapter, for example, a FTDI adapter** (like the one normally used to flash arduino boards), connected to your ArduVoice module. Configure eepe as in the pictures below.. Again you will probably have to use a different COM port.
Before you flash the firmware, you need to put the Voice Module and radio in bootloader mode.. To do it turn the radio ON while holding both horizontal trims towards the center, and the throttle trim to one of the sides (up or down).
Don't complain, it is possible. Mike says he can do it using only one hand.. I had to use both hands and my tongue
To flash, do it in the same way as to flash your radio. Hit the "Flash Firmware To TX" button in eepe, select the right firmware file and flash it..
EDIT: I just found out that we apparently don't really need to put the module in bootloader mode by holding the left vertical trim. We just have to start the radio in bootloader mode. So, just hold both horizontal trims inwards and turn the radio on. Then flash the voice module normally using eepe and the serial adapter.. If you really insist in using your tongue you can still do it without problems.. It will still flash the module the same way
**The original FTDI adapter from Sparkfun (FTDI basic) didn't work for me.. Only the Chinese ones and the serial adapter with the CH340G chip. This one requires one more diode on it's RX pin.
And here is a Zip file with the latest bootloader and firmware for the voice module running at 5V 16Mhz.