Radio Puzzle is a game where you have to skip through different radio stations in order to get a passcode. The required numbers are encrypted in the audio files / radio stations. It consists of a 3D-printed enclosure with a screen and a knob powered by a Raspberry Pi and a pair of headphones which is tethered to the radio. The knob is the only input method. A central hub ist connecting the puzzle to the escape room.
|
![]() |
Name | Role |
Conrad Bader | Programming Radio, API |
Malte Bungard | Creating sound files, Concept |
Lucca Kuvecke | Hardware Implementation, Case Design, Programming Hub |
Materials | Usecase | Cost [€] |
Raspberry Pi 3B | Reads the input, plays sound and visuals and communicates with the hub | 36.60 |
4.3" touchscreen with standoffs | Shows the waveforms | 41.95 |
KY-040 rotary encoder | decodes the player input to change the frequency | 2.3 |
6 breadboard cables | power and data lines | 0.35 |
8 threaded inserts for 3D printing | securing components and the backplate | 0.3 |
8 screws | securing components and the backplate | 0.15 |
4 picture frame mounts | mounts the radio to the wall | 1.4 |
200g PLA filament | 3D printed Case and headphonestand | 1.5 |
headphone / speaker | plays the stations | 20 |
paint | matt black finish to improve the 3d printed surfaces | 1 |
wood effect adhesive film | improve look | 2 |
Total | 105.75 |
Note: Listed prices do not represent the real costs of the project as e.g. the required screws can't be bought in these small amounts.
The idea for the puzzle is loosely based on the Retro Radio Riddle project, which was created as part of the Multimodal Media Madness 2017 at RWTH Aachen University. In this project, the functionality of an old analog radio was recreated. Using a rotary knob, the user could switch between six different radio stations within a frequency range, each presenting a unique riddle to the listener. Navigation between the stations was done purely by ear.
Our puzzle expands on this concept by adding visual elements to make the experience more exciting and varied. In addition, it is designed to seamlessly integrate into a room-wide protocol that is controlled through a central hub.
|
At first, we started with a playable prototype that ran on a PC rather than on the Raspberry Pi itself. In this version, we tested the basic functionality as well as the visual aspects of the final product. As shown in the video below, the knob was simulated in software. While it ran quite well on our computers, it quickly became obvious on the Raspberry Pi that a lot of optimization was required due to the weaker hardware. Furthermore, the physical knob and the host side of the communication protocol still had to be implemented. |
We began by assembling the Raspberry Pi, screen, and rotary encoder in order to get the software running. The goal was to design the housing as compact and robust as possible. As part of the course, three 3D-printed prototypes were developed. In the final design, no glue is used; instead, all parts are screwed together to simplify repairs. The power cable and the jack connection are internally strain-relieved. The display is protected by a plexiglass panel, which can be quickly replaced if needed.
Due to high CPU temperatures, ventilation holes and a 30 mm fan were added to the housing. The final version also features a metal mounting bracket, allowing the radio to be fixed to a wall. The counterpart is screwed into the wall using a template.
![]() |
![]() |
![]() |
![]() |
There are ten different stations / audio files - one for each number. We used two different types of radio stations/audio files: music and voice-focused channels. All audio files were generated entirely by AI. Two tools were used: ElevenLabs for voice-based channels such as news and podcasts, and Udio for music. The scripts/texts were written with the help of ChatGPT. The only thing ElevenLabs couldn't do was to add some background music and / or intros to the stations, so the loops weren't too distracting and obvious. So those were added after generating the main audio. It was important to strike a balance so that guessing the number was neither too easy nor too difficult. In addition, we wanted to provide some variety, so different voices and genres were used across the stations.
Here are three examples:
/kurswiki_sommer_2025/radio-puzzle/sender1.mp3
One of the songs.
/kurswiki_sommer_2025/radio-puzzle/sender3.mp3
A podcast with two different hosts.
/kurswiki_sommer_2025/radio-puzzle/sender9.mp3
An advertisement promoting some kind of coffee.
To link the individual puzzles in the escape room, a Windows computer is used as a central hub. This hub communicates with the devices via the HTTPS protocol over a WLAN network. A FritzBox is used as a DHCP server. The hub can be accessed from any device through two local websites:
The hub is configured so that the admin interface dynamically adapts to the number of puzzles. Each puzzle can bring its own logic. For example, the radio puzzle displays the generated code at the start, which is useful in case the group cannot solve it. The hub can also control the flow of the escape room by only activating a puzzle once the previous one has been solved.
Communication with the puzzles is based on a fixed set of API calls, making it easier to integrate additional puzzles. Communication with the radio has already been fully implemented.
![]() |
![]() |
![]() |
On two days of the exhibition at Campus Finkenau, we presented our puzzle for everyone to play and enjoy. Since none of the other planned escape room puzzles were available, we had to improvise a little. Setting up the radio and the tablet for entering the combination was not difficult, but we encountered the problem that there was no clear way to determine the order of the waveforms. To solve this, we prepared a whiteboard with the symbols and placed it across the room behind the players. On the first day, we used headphones for the audio output, but soon realized it would be better to use a speaker. This made the game much more cooperative and attracted more people to our exhibit. The game was very well received. Everyone who played it found it to be a lot of fun and pretty intuitive. Just figuring out the correct order of the numbers proved to be difficult, because most people didn’t think that there was anything other than the radio connected to the puzzle. We didn’t want it to be to obvious tho, so we chose to keep the whiteboard but draw a line to it on the floor to show the connection between it and the radio. In the end, we realized that our puzzle is ready to become part of a real, full-scale escape room. In such an environment, it should also be easier for players to find the correct answer, as they are more focused on the game and the hint for the correct order can be hidden in a more suitable place. |
Through this project, we gained valuable insights into the development of escape room puzzles. We not only had fun working on the prototype but also learned how crucial the surrounding environment is for the overall player experience. A puzzle does not exist in isolation — the context in which it is presented is essential and must be considered carefully during the planning phase.
We also realized that, for a final implementation, the audio files will need to be adjusted, as not all of them were fully understandable in every situation. For further development, it would be beneficial to create additional audio tracks, potentially with different difficulty levels, to increase variety and keep the game engaging for a broader range of players.
![]() |
![]() |
![]() |
![]() |