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



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 in first gear (the next 10 gear positions are generated automatically) – playback 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

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 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):

The top section displays a 16-channel monitor from the RC receiver – here you can see that the SBUS output is working and the Raspberry Pi is able to read it. If not, there is likely to be 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 for channel assignment – press 'Learn' and move the switch on the transmitter. The Raspberry Pi will assign it. An important function is "Calibration" – I recommend carrying this out first if the sounds are not playing correctly. The Raspberry Pi reads the maximum deflection values across all 16 channels. So simply move the sticks and toggle switches, 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 is for maintenance purposes; there is no need to use it. The Raspberry Pi has the SD card write-protected (except whilst settings and new sounds are being saved), so the power can be disconnected at any time without risk of damaging the card.

The fifth section includes the option to download sounds, including generated motor speed variations, and to upload them back – this is useful in case you change the model, as the sounds do not need to be recorded one by one. It is intended solely for backup and restoration. Alternatively, it can be used for your own recordings of different motor speeds (10 speed levels).

And finally – where can you find the sounds of a real tank? I've found it works well to look for these sounds in various YouTube videos, download them and edit out the relevant sections. You'll also need to turn the volume of these sounds up to the maximum and edit them to create a loop where necessary. For this, you'll need suitable software and know-how. 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. Have fun!

Luboš Hort