Sound Module

Instructions for building a sound module for an RC model tank

• The module is based on a Raspberry Pi 3B+
• It reads data from an RC receiver (SBUS output) and, depending on the output on the assigned channels, triggers
individual sounds – it responds to switch changes and stick movements on the RC transmitter
• A simple web interface is provided for uploading your own sounds, calibration and channel mapping
• I recommend reading through this entire guide first to understand the functions of the sound module


Basic wiring

Connection using a DAC
(higher quality and volume)



Playing sounds:

• Engine start – controlled by a switch on the RC transmitter; when switched off, the tank cannot be started (set on the RC transmitter)
• Idling – plays on a loop after the engine starts, provided the throttle is in neutral
• driving (engine speed is generated automatically, including gear changes) – the simulation responds to the position of the throttle lever
• Engine cut-off – plays after the engine start switch is turned off
• turret rotation – the sound responds to the position of the turret rotation lever
• main gun – plays in full once when the switch on the RC is activated
• machine gun – plays on a loop when the switch on the RC is activated
• others (battle sounds, etc.) – plays on a loop when the switch on the RC is activated

The sound module can also be used for other vehicles (trucks), ships (steamers) and so on.

Connect the audio module circuit as shown in the diagram above. You will need some basic soldering experience. Use thicker wires to connect the battery to the step-down module, the amplifier and the loudspeaker (power components). Before connecting the Raspberry Pi, set the output voltage on the voltage regulator to exactly 5.0 V. To connect to the Raspberry Pi, use cables with connectors – either make them yourself or buy them ready-made from model shops. The map of pins is here. The Visaton EX 60 S speaker is a diaphragm – less model and is best suited for providing sound for the model tank. It is important to secure it firmly (by screwing or gluing) to a large, flat surface. However, you can also use any other standard speaker and amplifier depending on availability. Their output will, however, be lower.

For installation, use a micro SD card with a capacity of 8–16 GB (it can be larger, but there's no need).

• Download the file "sbussound_v8_master.img.gz"
• Install Raspberry Pi Imager
• Select Raspberry Pi 3

• Select the option to install a custom IMG and choose the file 'sbussound_v9_ro.img.gz' – a higher version may also be available; you can find the file under the 'Files to download' button above

• Select the micro SD card that has been inserted (make sure you select the correct one if you have more than one)

• Write the IMG file to the card (you will need the password for the computer with administrator rights)

• The data will be written to the card

• And the check

• Close the programme and insert the card into the Raspberry Pi 3B+
• Switch on the power – use a 3- or 4-cell PiPol or Li-ion battery
• Switch on the RC transmitter and receiver
• The Raspberry Pi will boot up in around 30 seconds

If everything is connected correctly, the Raspberry will create its own Wi-Fi network called 'SBusSound'
Connect to it; the password is 'tank1234'
In your browser, enter: https://10.42.0.1:8080/
You will see the web interface for configuring the sound module (CZ/EN):

At the top, you'll find the audio output selection and a 16-channel monitor from the RC receiver – you can see here that the SBUS output is working and the Raspberry Pi is able to read it. If not, there is likely a fault in the wiring.

In the second section, you can upload your own sounds in WAV format, ideally at 44100 Hz, 16-bit, mono. If the parameters are different, they will be automatically converted to this format. File names can be anything; the Raspberry Pi will rename them.

The third section is channel mapping – press 'Learn' and move the switch on the transmitter. The Raspberry Pi will map it. An important function is 'Calibration' – I recommend carrying this out first if the sounds aren't playing correctly. The Raspberry Pi reads the maximum deflection values on all 16 channels. So move the sticks and switches around, and you're done. Provided you haven't set a range greater than ±100% anywhere, it will work correctly. Finally, save the channel map.

The fourth section contains a motor simulation – the audio output comes from the computer. This is useful for adjusting gearbox parameters.

The Raspberry Pi's SD card is write-protected (except whilst settings and new sounds are being saved), so the power supply can be disconnected at any time without risk of damaging the card.

The fifth section includes the option to download sounds and upload them back – this is useful in the event of a model change, as the sounds do not need to be uploaded one by one. It is intended solely for backup and recovery purposes.

And finally – where can you findreal tank sounds? I've found it works well to look for these sounds in various YouTube videos, download them and cut out the relevant sections. You'll also need to turn the volume of these sounds up to the maximum and loop them where necessary. You'll need suitable software and know-how to use it, or you can use my Sound Editor. Alternatively, you can use AI sound generators (not music ones). The basic sound I've created is suitable for tanks, and I'll be adding more in the future. To test the sounds before loading them into the module, use my Sound Module Simulator. Have fun!

Luboš Hort