Our latest cross-platform SDK release arrived yesterday, and it addresses one of our most common feature requests: the ability for multiple nearby devices to chirp simultaneously without causing interference.

This enables full-duplex two-way communication via audio, in which Alice and Bob's devices can speak to each other simultaneously without needing to wait for the other to stop. In fact, it's "multi-way" to be precise. We've been testing with 8 devices chirping at the same time, with no loss of reliability.

Under the hood, the approach we take is analogous to picking the frequency band of a radio-controlled car. Chirp transmissions can now be banded into individual "channels", each of which spans a particular range of audio frequencies (say, 17-18kHz, 18-19kHz, etc). If I'm chirping to Alice on the 17kHz band, she can safely respond on the 18kHz band at the same time.

Why is this useful?

As the number of IoT devices around us grows, this will help to address the increasingly common case in which several devices need to communicate simultaneously.

  • In meeting rooms and smart offices, your laptop can hear ultrasonic Chirp broadcasts from several base stations within hearing range, allowing it to seamlessly connect to nearby presentation displays, teleconf setups without any configuration or pairing along with presence detection. In traditional data-over-sound systems, having multiple devices within hearing range will result in "chirp clash", in which conflicting broadcasts interfere with each other.
  • In multi-player gaming, your mobile gaming app can send out tiny ultrasonic beacons advertising your user ID, whilst being able to hear other nearby devices, so that gamers can seamlessly create proximity-based gaming sessions. Same for bill splitting,
  • In ticketing, multiple lines of customers can redeem their Chirp-based tickets without interference from nearby devices.

Code samples

Here's how the code might look for two hosts to send out their ID in an ultrasonic beacon, broadcasting the ID repeatedly. This can be used for the discovery of nearby devices.

Start building with multi-channel data-over-sound

Chirp's multi-channel SDKs are available to download today from the Chirp developer hub, for all our supported platforms (Android, iOS, Windows .NET, JavaScript + WebAssembly, Python)

The default protocols exposed in the developer hub are single-channel only. If you'd like us to add multi-channel protocols to your account, just drop us an email with the subject line "multichannel" and we'll add them right away.