Despite the widespread use of WiFi and availability of cellular networks, there remain scenarios where WiFi and 3G/4G are not available (e.g. rural areas etc.).

Hence, ultrasound could be a viable option to consider when enabling communication between devices, especially so when any device with a microphone and speaker can communicate as well (like humans!). As our first hackathon, we decided to implement a library that enables ultrasound communication with a simple pairing app as a demonstration.

What it does

The library allows users to transmit and receive messages using ultrasonic sounds. We have provided additional services such as regex listeners that allow for multi-way communication as well as triple handshakes.

These features are presented in the form of a simple API for web developers to effectively integrate ultrasonic communication into their web projects.

Sample Methods

listenFor(event, regex, callback)
broadcast(id, message, options, callback)
tripleHandshake(message, options, callback)

Potential Uses

Potential uses include the ability to pair devices and broadcast messages from 1 device to others in range by enabling offline communication. Ultrasonic sounds are platform independent, allowing for remote access to a variety of machines (e.g. Fridge etc.).

As most modern devices come with a microphone and speakers, it can serve as a viable alternative to camera-dependent technology, e.g. QRCode, for sharing information, especially since it has the capability to work on any device that supports HTML5 while not requiring any set-up at all.

How we built it

By extending existing web APIs (e.g. using Fast Fourier Transform due to time constraints), we used Node.js / Browserify etc. in order to build a better library with enhanced functionalities.


The library is currently tested to be only working on Google Chrome thus far due to its support of latest HTML5 audio API.

Built With

Share this project: