Dan Jones, CTO of Chirp explains how they transmit data over sound using ordinary speaker and microphone

Published  July 24, 2019   0
S Staff
Dan Jones, CTO of Chirp

With the electronics buzz towards IoT, Machine to Machine Communication and Connected devices, design engineers are on constant hunt to find a sublime mode of communication technique to exchange information between two electronics device. While there are already a lot of options to select from like BLE, NFC, RFID, LoRa, Sigfox etc, a company called Chirp has developed an SDK that allows exchange of data over sound by simply using the device speaker and microphone without the need of paring.  On top of that the SDK is platform independent and also supports low power data communication.


The SDK encodes the data into a unique audio stream and plays it through the device speaker, this audio stream then can be picked up by any device using a microphone and decode it, to obtain the actual message. The SDK is cross platform and already supports Android, iOS, Windows and python among others. It can also be used in microcontroller platforms like ARM and supports development platform like ESP32 and Raspberry Pi. To know more about Chirp and its possible applications, Circuit Digest approached Dr. Daniel Jones - CTO of Chirp, to discuss few questions. The answers for which is encapsulated below   


1. What is the technology behind chirp and how does it work?

Chirp is a way to transmit information using sound waves. In contrast with Wi-Fi or Bluetooth which uses Radio frequencies, Chirp encodes data in tones that can be played (transmitted) using any computer speaker and received through any computer microphone without the need of having any additional hardware like RF chips. This enables Chirp to be used on any consumer device that has a speaker and microphone in it, like mobile phones, Laptops, PA system etc and can transmit information even through YoutTube stream or TV broadcast.

The encoded audible tones played through the speaker are susceptible to humans and it sounds like a tiny piece of digital bird song, hence the name “chirp”. But we can also exploit the fact that computer speaker and microphone can actually also work with ultrasonic frequencies that are inaudible to human ears, this way we can also transmit information over sound that we can’t hear.  


2. With so many wireless communication protocols around us like BLE, NFC, RFID, LoRa etc.. Why do we still need chirp? What is unique with it?

One reason will be Chirp’s extremely low friction. Unlike Bluetooth or Wi-Fi I can use Chirp to immediately initiate one to many communication to share a message with everyone around me without having to pair with them. It makes it a lot easier to share something quickly and easily to everyone around the room or around the table. It comes very handy for connecting with people I have not met before or for interacting with machine that I might not have met before. For example opening a smart locker or sharing a business card etc..

Apart from that, a lot of time we also see Chirp being used in Peer to Peer Communication as well. For example, Shuttl an Indian bus company is using Chirp between the bus driver and passenger to check if the person has boarded the bus and if his ticket has been redeemed.


3. Is it possible to set-up a mesh communication with Chirp? Can I communicate with multiple devices?

Yes, one of the key things to remember about sound it that it is a one too many type of communication, meaning anything nearby that is in the audible range of our transmitter will hear the sound and will receive the data. This has both advantages and limitations. The advantage being, it is very easy for multicast sharing. For things like mesh networking it would possibly work, but you would need a sequence of receivers within the hearing range of one another. So, normally we tend to use chirp more for one to many broadcast scenarios. 


4. How can Chirp work without any paring? Does this lead to data security problems?

We have a very tiny Demo app called “Chirp Messenger” (available on Android and iOS store) that shows how our SDK works. To send a message the user can type in the message and press send which will embed the message into an audible tone and play it though my phone speaker. So, any device nearby, which is running our developer kit, can receive these audio tones through microphone. These audio tones are decoded to constituent frequency and error correction is applied to counter the effects of noise and distortion to obtain the actual message. This way Chirp is completely paring free all that is needed is to hear the tones and decode them.

There are some security implications that can be used when sending sensitive data though Chirp, like layering some security features onto the existing protocol. Since Chirp is just a transfer medium you can embedded anything into those tones. For example you can use RSA or AES encryption to make your data encrypted before sending it over a chip and then decrypt it using public key cryptography.


5. Is Chirp small enough to be used with low power embedded controllers? How much power does it consume?

We strive to optimize our SDK as much as possible. We have an amazing embedded DSP team who cut every unnecessary bits and bytes off the code to reduce CPU cycle. The reason for that is, one of the big area in which we are seeing uptake is with the embedded field chip. Particularly if you want to communicate with low power and low spec IoT device. Our SDK can even run on an ARM Cortex M4 processor running at 90Mhz frequency with less than 100kB RAM.

The power measurements on Cortex-M4 controllers, as measured on our development boards were around 20mA when actively listening and less than 10uA in wake-on-sound mode with 90M cycles per second. The wake-on-sound mode uses super low power microphones from a manufacturer called Vesper who makes zero power always on microphone. This way the microphone will be actively listing for sound and when it hears a chrip it will wake the Cortex controller from sleep mode to decode the data.


6. What would be the communication range and payload for Chirp Communication?

In terms of range it all depends on how loud the signal is transmitted by the speaker. Higher the volume of the broadcast the further the range, this is because to receive the information the microphones would have to hear to it first. We can control the range quite simply by controlling the sound pressure level of the emitting device. At the far end you can broadcast a chirp to an entire stadium transmitting your data hundreds of meter away or you can lower our speaker volume transmit your data within a room.

In terms of the data rate, the acoustic channel is noisy and hence it is not a rate that could be used to compete with Bluetooth or Wi-Fi. We are talking about hundreds of bits per second and not in megabits. Which means Chirp is recommended for being used to send small data like token values etc. Our fastest protocols run at a 2.5kb/sec, but these are for short range NFC style scenarios. Over a very long range, data rate would be 10’s of bits per second.


7. Since data is exchanged using sound waves, how will it be immune to environmental noise?

Obviously the environment around us is incredibly noisy, from restaurants to industrial scenarios background noise are always present. We came originally out of a research University College London, Computer Science Lab which was looking primarily at the problem of how to communicate acoustically in a noisy environment. And we have multiple PhD’s and Professors trying to crack this problem. This is where a lot of out researches focus and we have got multiple patents in this area.

As a testament to this, we have operated successfully in a nuclear power plant here in UK. We were brought on by a company called EDF energy to send ultrasonic payloads over 80 meter range in the incredibly deafening background environments upto 100 decibels that we have to wear defenders. Still we were able to attain 100% data integrity over an  18 hour test of the equipment.


8. What are the other low-power hardware platforms that will be supported by Chirp?

We already have a stable SDK for ARM Cortex M4 and M7 and next we are working on send only SDK for ARM Cortex M0 which is a fixed point processor that has no floating point architecture. We aslso support ESP32 through Arduino platform and have also started to look into FPGA support as well for extremely efficient processes.


9. Where is chirp currently being used, can you give us few example use cases?

Proximity detection is a really good application. Because only people near you can hear your chirps it can be used as a heuristic to know who is around you. Chirp is used by a huge social gaming platform called Roblox as a way for the young gamers to detect other people nearby to them, effectively using ultrasonic chirps. This way I can pull out my mobile and it will acts as an ultrasonic beacon to be discovered by other players in the room to initiate a gaming session.

We are also about to launch a partnership with a major meeting room company to help them with indoor navigation using Chirp. As you walk from room to room in a building, it is quite important for your device to know which room you are in. With this organization we are using chirp as a way for your laptop or mobile to tell which room you are currently on and enable you to make a connection to a meeting room.


10. What are the licensing terms for Chirps SDK? What kind of loyalty is involved?

For smaller business, hobbyists and DIY makers Chirp is completely free up to 10,000 monthly active users. This is because we really want to see people using our technology and the developer community experimenting with it. Apart from that we also want to support small business. For larger enterprises and customers we tend to charge them an annual fee