Chirp started off as a mobile application, a platform for exchanging data using sound. Give the app a link, a piece of text, or an image, and it will “chirp” a sound, which can be decoded by anyone else using the app and points to the data on Chirp’s servers.
“Chirp enables data to be transferred via sound, using a device’s existing speaker and microphone. It can use audible or ultrasonic frequencies, works in the most challenging acoustic environments, and does not need a network connection.”
While the Chirp support for Arduino first arrived back in 2015, in more recent times it’s been somewhat unclear as to the state of Chirp’s Arduino GitHub repo, as more recent SDK releases seem to have shipped as binary blobs, and there was also no mention of Arduino support on the Chirp developer site.
The new SDK supports the Arduino MKR Zero, MKR Fox 1200, MKR WiFi 1010, MKR Vidor 4000, and the Arduino Zero, allowing the boards to send Chirps—much like the original SDK from back in 2015.
“To make it possible to run the Chirp SDK on these lower end devices, we have spent some time over the last few months refactoring our code base to operate with fixed-point arithmetic. By doing so, we have reduced the execution time by nearly ×10 on embedded devices that don’t have a floating point unit.”
Right now, the Chirp SDK is restricted to using Chirps audible to human hearing, although that this is due to change soon.
“The first iteration of the Chirp SDK for Arduino operates only in the audible range. Over the coming months, we will also be working on an inaudible version that will work at near ultrasonic frequencies. With this you will be able to send data at frequencies that humans cannot hear, so you will also be able to embed the Chirp data inside existing audio such as songs or videos to trigger actions.”