Open Panzer Project sound card for RC Models

Status
Not open for further replies.

LukeZ

New member
Hi Guys,

Thought I'd share a simple project to add sound to RC models. There are various products in existence already that do this, but either they don't do it very well (see Taigen) or else they are outrageously expensive, see the Benedini TBS Mini (approximately $150) or the Beier USM-RC-2 (even more).

This project uses a Teensy 3.2 to do all the heavy lifting, and it plugs into a simple carrier board that provides an amp (LM48310, same as on the PJRC Prop Shield), LDO, SD card slot, and various connections for speaker, volume and other things typical of RC models. There is also space for a flash chip but so far the software doesn't use it. I was afraid I would have problems playing multiple sounds simultaneously from the SD card but so far it hasn't been an issue and we play up to 6 WAVs at once.

Basically the hardware is quite simple, the firmware gives us the magic. To get the most functionality it is actually better to control the device via serial commands, and it was designed specifically for use with our Open Panzer Tank Control Board (TCB). However there are also 5 RC inputs on the board that presently allows control of the engine and some other auxiliary sounds as well as the volume from standard RC gear.

Configuration is pretty simple, just put your sounds on the SD card with the appropriate names as listed in the documentation.

All software and hardware is open source. The GitHub page has the firmware as well as links to the Eagle files, bill-of-materials, and bare boards from OSH Park, as well as instructions for use.

Here is a thread over on the Open Panzer forums with some minor discussion (mostly a monologue) about development: Open Source Sound using Teensy 3.2 and PJRC Audio Library

What is needed now are more sound sets, which some beta-testers are working on.

At least in the RC tank community I believe there would be quite a demand for this sort of product since there are no other good options presently available and tankers always want sound. I'd be interested to have it manufactured by somebody and let them keep the profits (if there were any). We got our first product (the TCB) to market this way via HobbyKing but that experience has been frustrating to say the least and I would probably not want to use them again even if they were interested, which I don't believe they are.
 

Attachments

  • OPSound.jpg
    OPSound.jpg
    149.5 KB · Views: 192
  • OPSound_Components.jpg
    OPSound_Components.jpg
    136 KB · Views: 186
  • OPSound_wTCB.jpg
    OPSound_wTCB.jpg
    122 KB · Views: 195
  • AudioDesignTool.png
    AudioDesignTool.png
    540.1 KB · Views: 216
  • OP_Sound_v1_r1_Schematic.pdf
    25.5 KB · Views: 169
  • opsoundcard.jpg
    opsoundcard.jpg
    144 KB · Views: 206
By the way, I want to thank you Paul for the enormous contributions you have made to the - what would we call it, the micro-controller-gizmo-tinkerer-community? I don't know where you have found the hours in life to be as productive as you have, but it's allowed countless others such as myself to effortlessly (well almost) achieve our own dreams by trampling on your shoulders.

I took the Audio Workshop in Portland last year when I still lived in Oregon, which gave me the knowledge to start this project. Again I can't overstate how helpful all the documentation and resources have been that Paul and others on this forum have provided. Thank you so much.
 
That's a really cool project! Hadn't thought of the need for this until you mentioned it, being in the RC aircraft world for almost 20 years, and most of my vehicles are too far away to think about adding sound. But it makes sense and looks extremely well done. Kudos!
 
Nice little setup there. Are you playing all the sounds from SD or are you also using synth? Recordings will always be better for a single instance but there are some interesting results for things like engine noise if you synth them up based on a virtual engine RPM.

Edit: and then went to look at your helpfully included screen shot...
 
looks neat, will look at it in more detail when i have the time as it looks useful/fun for my RC truck
 
Are you playing all the sounds from SD or are you also using synth? Recordings will always be better for a single instance but there are some interesting results for things like engine noise if you synth them up based on a virtual engine RPM.
That is an interesting idea that I have no explored. In truth I am not an "audio" guy and my knowledge of generated sound effects is basically nil. But that could be something worth exploring. Are you suggesting that an actual recording (arbitrary WAV file) can have its playback speed modified in some way, or are you referring to a synthetic sound effect generated through code? I discussed the former case with Paul at the workshop and he indicated that altering the playback speed of a digitally-encoded file is not trivial and as such there was no routine for it in the Audio library. What this project does instead is require the user to provide samples arranged in order of speed, which the card then plays sequentially relative to the virtual engine RPM - with a bit of overlap for smoothness as it transitions from one speed to the next. This is why we have Engine[0] and Engine[1] shown in the design tool, one speed will fade into the next and we alternate between the two engine slots as we go up and down the "scale."

Here is a brief video that doesn't really show much other than it works. In this case the sound card is being controlled via our TCB rather than by RC signals directly, but it works either way.

 
My thoughts were on actually synthesizing the engine noise from instruments and filters, which is great if you need a multi axis mix, say for a light saber but is somewhat overkill for this. One big gotcha is the potential for random processes to combine in unexpected ways and drive the output into overdriven static. Playing from SD card makes it much easier to get the same result each time.
 
Status
Not open for further replies.
Back
Top