This solution was developed using the Chirp SDK,  get building in minutes here

Imagine you are going to a company to present a new report. You don't know their wi-fi password, you don't have a mobile internet connection and you don't have an HDMI port to connect your laptop to the screen.

You have to deal with scanning the wi-fi network, typing the long and complex passwords which are often hard to remember or struggle through the USB-C, HDMI adaptor malarky (thanks Apple). The goal of connecting a device to a screen is trivial but often a difficult and frustrating task to accomplish.

With Chirp's data-via-sound SDKs we have an advantage, machines can easily communicate between each other, with no specialist hardware or prior relationship. Imagine the same scenario above taking less than 10 seconds to get connected and your laptop screen being mirrored on the meeting room display.

During the Christmas hackday, we refined this process down to the click of a button. We have a TV, broadcasting a UID via it's speakers and we have your laptop's microphone listening for it. All we need to do is to make the TV to Chirp it's UID and Wi-Fi credentials to your laptop so it can connect to WiFi and the screen...

Step 1 - Get the screen to broadcast its ID and Wi-Fi credentials


Most TVs today are smart and have internet browsing capabilities. In our case, we used a Chromebit, a small computer which you can attach to the screen through HDMI. You can easily configure it to work in kiosk mode so it will always open the same app on boot.

Next, using our WebAssembly SDK  we created a small web application which is configured to broadcast the credentials and using WebRTC we configured it to play the video stream when a device is connected.

Step 2 - Teach your laptop to listen to WiFi credentials and screen ID

As the screen is already broadcasting credentials, we now need a device that will hear the Chirp and connect to WiFi.

To keep it simple we used a framework called electronjs which allows you to build cross-platform desktop apps with JavaScript. It is pretty much a browser application which can be accessed by the OS through an API.

As this is a web-based application we used the Chirp WebAssembly SDK again to receive the data sent by TV and WebRTC to broadcast video from the laptop screen.

Step 3 - Connecting them together.

As we've now configured the TV to play the Chirp with the WiFi and screen sharing credentials embedded into it and the electron app to receive the Chirp - it should now be a pretty simple case of connecting the two together and let WebRTC do it's thing.

One of the cool things about this solution is that ultrasonic, Chirps don't bleed through walls or glass, so it can be put into multiple rooms without having to worry what room has what screen.

Here's the hack ⬇️


At Chirp, we believe that everyday tasks like this should be seamless and simple. That’s why we’ve developed a technology that’s all about making things frictionless.

Why enter a complicated code when your devices can simply speak to each other, without you typing a single digit, looking for dongles or worrying if a screen is using USB-C or HDMI?

This is why we developed this solution. There's a figure floating around the industry: on average, 15 minutes of every meeting is lost due to A/V issues. We've all experienced it - if we can change that figure, like we have with bus ticketing - then frustrating and agonising experiences will be no more.


This solution was developed using the Chirp SDK, available here at no cost to freelancers, startups and educational use, under 10,000 monthly users.