https://github.com/ggerganov/ggwave/tree/master/examples/r2t2 Skip to content Sign up Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up Sign up {{ message }} ggerganov / ggwave * Notifications * Star 520 * Fork 24 * Code * Issues 3 * Pull requests 0 * Discussions * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights master Switch branches/tags [ ] Branches Tags Nothing to show {{ refName }} default View all branches Nothing to show {{ refName }} default View all tags ggwave/examples/r2t2/ Go to file ggwave/examples/r2t2/ Latest commit @ggerganov ggerganov Update README.md ... 8cb55e3 Apr 19, 2021 Update README.md 8cb55e3 Git stats * History Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time . . ggwave-mod r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 CMakeLists.txt r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 README.md Update README.md Apr 19, 2021 build_timestamp-tmpl.h r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 index-tmpl.html r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 main.cpp r2t2 : print duration Apr 19, 2021 main.js r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 plucky.mp3 r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 r2t2-rx.cpp r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 style.css r2t2 - Transmit data through the PC speaker (#32) Apr 18, 2021 r2t2 Applications Requirements Build Acknowledgements README.md r2t2 Transmit data with the PC speaker r2t2-1-small.mp4 Vid. r2t2 demonstration This is a command-line program that encodes short messages/data into audio and plays it via the motherboard's PC speaker. To use this tool, you need to attach a piezo speaker/buzzer to your motherboard. Some computers have such speaker already attached. You can then run the following commands: # transmit the message "test" with default protocol "[R2T2] Normal" echo test | sudo r2t2 # transmit the message "hello" with protocol "[R2T2] Fast" echo hello | sudo r2t2 -t10 # transmit the message "foo bar" with protocol "[R2T2] Fastest" echo "foo bar" | sudo r2t2 -t11 To receive the transmitted message, open the following page on your phone and place it near the speaker: https://r2t2.ggerganov.com Applications This tool can be useful when you need to transmit data from air-gapped machines. The hardware requirements are very cheap - you only need a PC speaker. For example, you can make an automated script to periodically emit some sensor data, which can be received by someone nearby running the r2t2 receiver application. Requirements * PC speaker / buzzer attached to the motherboard. Here are the ones that I use: Talking buttons Talking buttons Img. Left: PC speaker plugged into a motherboard. Right: two PC speakers with a coin for size comparison * Unix operating system * Add the pcspkr kernel module: sudo modprobe pcspkr * The program requires to run as sudo in order to access the PC speaker Build git clone https://github.com/ggerganov/ggwave --recursive cd ggwave mkdir build && cd build make ./bin/r2t2 Acknowledgements Thanks to Radoslav Gerganov for this cool idea! * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.