How LISNR's Ultrasonic Technology Works
Harness the Power of Ultrasonic Proximity Communication.
The Radius® SDK by LISNR lets you securely exchange data between devices using just speakers and microphone: no network, no camera, no cables.
Often as a replacement to NFC, Bluetooth, QR Codes, and Wi-Fi, ultrasonic communication is proximity intelligence made simple.
That’s the power of ultrasonic data transmission.
Radius can transmit and receive payloads offline and requires no additional hardware beyond what’s already embedded in most connected devices.
Components of Ultrasonic Data Transmission
A device with the Radius® SDK integrated within an application. The device broadcasts an ultrasonic tone through the local speaker on the device.
A Transmitter can also be a device broadcasting an mp3/wav file generated from the LISNR® Tone Service API
A device with the Radius® SDK integrated within an application. The device receives the ultrasonic tone through the microphone.
App or device integrated with the Radius SDK that simultaneously sends and receives a tone via microphone and speaker
The contents within the ultrasonic transaction being sent between the transmitter and receiver.
Reliable Proximity Data via Ultrasonic Sound
Short, Mid, and Long-Range Communication: Anywhere Devices Connect
Learn more about common use cases on the Radius product page.
Built for Interoperability Across the Connected Ecosystem
Core Architecture
Portable C++ Library That Goes Wherever Your Software Goes
At its core, Radius is a lightweight, high-performance C++ library built for flexibility. Whether you’re developing on mobile, desktop, or embedded platforms, Radius adapts to your environment without disrupting your architecture.
-
Portability
Lightweight C++ library architecture
-
Interoperability
Works across majority of platforms
-
Accessibility
Works with existing speaker/microphone hardware
Platform Availability
Mobile, Desktop, and Embedded Support
-
Mobile – Embedded, iOS, Android, React Native
-
Desktop – Windows, Linux (x64 and ARM64), MacOS
-
Embedded – Raspberry Pi, IoT device setups
-
Web - In Beta
-
Tone Service API - Generate tones as mp3/wav files for any speaker
This portability makes it easy to embed LISNR into apps, kiosks, terminals, and edge devices. Ideal for cross-platform interoperability.
Multichannel Transmission
Three Channels. One Seamless Experience
Radius supports simultaneous ultrasonic transmissions over three predefined frequency channels, facilitating true transceiving (send + receive) behavior in real time. This architecture supports complex interactions like mutual device presence detection, dual device authentication, and dynamic exchanges between devices.
Channel
Frequency
Tone Profiles
Ultrasonic Profiles Tailored to Your Range and Data Needs
Every use case is different. LISNR provides four optimized tone profiles in two families, Zone and Point, to help you choose the right balance of range, throughput, motion tolerance, and line of sight between speakers and mics.
Radius® Tone Profiles
Profile
Family
Range
Max Payload
Throughput
Movement Tolerance
Suggested Use Cases
*Zone 266 Max Payload using the WebSDK is 300 bytes
Event Callbacks
Customize the User Experience at Every Event Trigger Point
The Radius SDK includes a robust callback architecture to help developers build responsive, event-driven applications for users.
TYPE
METHOD
TRIGGER
Transmitter
Receiver
Transceiver
Security
Two Layers of Transmission Security
LISNR® has two primary ways for companies to protect their data-in-flight during an ultrasonic transaction: ToneLock and Encryption. Both security protocols protect against fraud. However, they approach the protection in different ways.
Custom-Value Tone Lock
ToneLock
ToneLock, introduced in Radius® 3.1, is a LISNR-created security protocol that adds an extra layer of security by allowing developers to assign a unique identifier (RFC4122 UUID) to a transmitted tone. The tone can only be demodulated if the receiving device a matching UUID.
For teams that want control, the Custom Value method of tone locking lets developers set their UUIDs. For more hands-off approaches, Account-based and Time-based methods apply security automatically.
Custom Value ToneLock
Custom Value
Developers can choose their own UUID (RFC4122) to lock the tone transmission between specific devices. It can be static (same UUID for all transmissions) or dynamic (UUID changes for each transaction).
Account-Based ToneLock
Account-Based
Ensures payloads can only be transmitted and received between applications within the same LISNR® Portal account, requiring no additional input from the developer.
Time-Based ToneLock
Time-Based
After the tone is generated, payloads are restricted to a 30-second time window for demodulation. Time-based ToneLock builds on Account-based and requires no additional input from the developer.
Radius Built-In AES-256 Encryption
AES-256 Encryption
Encryption offers companies a tested security protocol to protect ultrasonic transactions. Integrated directly into the Radius® SDK, AES-256 encryption provides seamless security for protecting LISNR® payloads. The encryption process requires no additional hardware or complex configurations, offering peace of mind without the hassle of setting up encryption protocols.
- Encryption can occur offline and is available for all tone profiles, ensuring secure transmission of data.
- The Radius SDK also allows the Tone Service API to generate encrypted mp3/wav files. However, the Radius SDK can only decrypt data encrypted by another Radius® SDK application if both applications are under the same LISNR® Portal account.
Audio Controls
Designed for the Real World, Not Just the Lab
Radius tones are inaudible to humans and highly resilient in noisy environments. Developers can also configure how tones behave.
-
Adjust Audibility
For mobile platforms, the Radius SDK provides control over the transmission volume of tones. By default, tones are broadcast at 100% volume on Android devices and 80% on iOS devices. Developers can modify this transmission volume if needed. Immediately after broadcast, the device's volume returns to its previous setting.
-
Audio Permissions
Applications using the receiving functionality of the Radius® SDK must request specific permissions, such as microphone access, from users at runtime. No permissions are required for the transmission functionality of the Radius® SDK.
-
Audio Hardware
Speakers and microphones with a frequency response of 20 kHz are required to broadcast and receive Radius tones successfully. Most commodity speakers and microphones, including mobile devices, can easily produce the signal.
-
Overlaid Audio
If companies want to add audible sound (Ex. chime, announcement) to the ultrasonic transaction, the audible sound should not affect the Radius® performance. However, if the audible noise increases in frequency, it may affect the success rate of demodulation.
Developer Portal
Your Command Center for Building with Radius
Within the LISNR Portal, customers can create SDK/API tokens, read SDK docs, and download the SDK for Android, iOS, Windows, and Linux. The LISNR Portal provides 24/7 access to the developer dashboard to manage and demo Radius technology use.
Analytics
View metrics related to how customers are interacting with the Radius® integrated technology.
Sample App
LISNR provides a sample App to test tone profiles and Radius features via the LISNR Portal and local device-to-device transmissions. Sample app source code (for native Android, iOS, Desktop) is available to developers in the LISNR Portal as well.
Resources and Documentation
Support documentation and access to customer success team to aid in a successful implementation.
Frequently Asked Questions
Are you looking to dive a little deeper into the Radius® SDK? Below are some commonly asked questions and answers.
Yes! LISNR’s ultrasonic SDK Radius® does not require an Internet connect to transmit or receive tones.
The Radius® ultrasonic SDK can transmit and receive tones while offline if it has been less than 24 hours since the last online connection.
The Radius® SDK only requires an online connection once every 24 hours to sync.
While the Radius® 3.1 SDK file size is very small, the actual size varies by platform. Our customer success team can help you quickly determine the file size.
An ultrasonic SDK implementation process typically follows this process:
1. Establish data flow
- Customer is introduced to Radius® concepts in order to understand the expected data flow and where the Radius® SDK will fit into their application(s).
2. Get access to LISNR® Portal
- This is where LISNR® customers can download the Radius® SDK, create SDK and API tokens, read documentation in the knowledge base, access testing tools, and download Radius® Sample applications for all supported platforms.
3. Environment setup
- Customer developers create SDK Token(s) using their respective Android app ID and/or iOS Bundle ID (if applicable) and put the Radius® SDK into their application
4. Integration
- Customer developers create a Radius® object, Transmitter and Receiver objects (if unidirectional) or Transceiver objects (if bidirectional).
- Transmitter side – Add logic and UI/UX elements for broadcasting payload data (Tones).
- Receiver side – Add logic and UI/UX elements for receiving and validating incoming payload data (Tones).
- Testing
Radius® 3.1 ultrasonic SDK offers multiple ways for companies to secure their payloads:
- ToneLock is a LISNR® created tone security protocol that ensures only the intended device is able to receive the payload.
- AES256 Encryption is an industry standard for securing data. LISNR® offers encryption to be applied to all transmitted/demodulated payloads within a customers LISNR® portal account.
Companies can also choose their own security protocols and transmit/demodulate them through the Radius® SDK.
LISNR’s Radius® product is a software development kit or SDK that can be used to build applications/software.
While the SDK isn’t an application itself, if you’re looking to demonstrate the capabilities of the SDK or need to test the SDK features, the LISNR® team has also developed two separate in-house applications:
- Radius® Experience Application – For demonstrating UI/UX elements within specific industry use cases.
- Radius® Sample Application – For testing nearly all features of the SDK. Users can input custom payloads.
While the ultrasonic SDK isn’t a platform, it can function within a wide variety of platforms including Android, iOs, Linux, RPi, and Windows.
The Radius® ultrasonic SDK is available for the following platforms:
- native Android
- native iOS
- Linux (x64 and ARM64)
- RPi
- Windows
The LISNR® Experience Application is available for the following platforms:
- Android
- iOS
The LISNR® Sample Application and source code are available for the following platforms:
- Android
- iOS
- Desktop (Windows/Linux/RPi)
*Note: In some instances, (Beta) Radius® SDK for Web may be available by request.
Your customer success representative will guide you through the requirements gathering and implementation process. Here is an example of a typical technical requirements checklist for an ultrasonic SDK implementation:
- Data Flow
- What is the size of the data that will be broadcasted with the Radius® SDK in bytes?
- What is the expected transmission distance between speaker and microphone when using the Radius® SDK?
- Does the data transmitted by the Radius® SDK get sent from one device to one device (1 to 1)? Or from one device to many listening devices (1 to many)?
- Does the data transmitted by the Radius® SDK only get sent from one device to one/many (unidirectional)? Or will the other device need to respond using the Radius® SDK (bidirectional) or network (unidirectional with network validation)?
- Does the data transmitted by the Radius® SDK need to be secure? Are the security methods provided in the payload or is ToneLock needed?
- Hardware
- Broadcasting application/devices have a speaker?
- Listening application/devices have a microphone?
- Software
- Broadcasting Application platform is Android/iOS/Desktop?
- Broadcasting Application platform will use LISNR® Tone Service API?
- Listening Application platform is Android/iOS/Desktop?
For more information, contact a LISNR® representative or visit our integrations requirements page.
Implementing LISNR’s Radius® ultrasonic SDK for proximity marketing—on-prem and digitally—is a very common use case.
Here’s an example of how an on-prem proximity marketing use case could function:
- A loyalty customer store enters a physical space (such as a grocery store, restaurant, pharmacy, hotel, or venue) that is broadcasting a unique identifier using the Radius® SDK.
- When the consumer opens the retail company application (which would be using the Radius® SDK), the app detects the broadcasting tone.
- Once the tone is detected, a targeted, in-person advertisement can be broadcast to the consumer on their mobile device, which the consumer can then utilize.
Radius collects zero personal data. LISNR collects high-level analytics data to ensure the experience is secure and reliable.
- Secure Storage: Analytics data is sent through highly secure, “bank-grade” encrypted channels (HTTPS) to our private servers.
- What We Capture: We collect technical details such as your device type (e.g., iPhone or Android) and whether your microphone is enabled.
To provide the most secure and reliable experience, LISNR features are recommended to be used when the app is open and active (in the foreground). This ensures that the speaker and microphone performance is as intended, allowing the end user of the application to be in control of when the Radius action occurs.
- App Open (Active): When consumers have the app open in the Radius instance, the Radius SDK is ready to “hear” the secure tone to complete the Radius action.
- App in Background: Background listening and transmitting features are controlled by the application that the Radius SDK is built into; this can provide an inconsistent experience when implemented in the background because the Radius SDK cannot guarantee continuous speaker or microphone access.
Radius requires microphone permissions to detect ultrasonic tones and process incoming data. When the Radius SDK lives within an application performing receiving functionality, it must request permissions so the user knows it is using their microphone.
- The Goal of Education: We want to address any confusion early on. When you understand how a feature like the microphone improves the app, you’re more likely to feel empowered to use it.
- Better Experience: Granting access enables simple, hassle-free digital wallet payments or check-in at your favorite store or transit gate.
No. LISNR transmits and processes data in real-time, not through audio recordings. Moreover, Radius applies bandpass filters to audio picked up by the microphone, only processing our frequencies of interest (16kHz-20kHz), which are too high for most audible speech.
- Privacy-First Design: No audio is recorded or saved to your device or our servers.
- User Control: Both Android and iOS require applications to request microphone permissions. We recommend a “primer screen” to explain exactly when and why the app will use these features.
A common misconception is that physical sound perception at high frequencies implies physiological strain. For pets and all animals alike, LISNR Tones are in a safe audio frequency range. High-frequency sounds aren’t inherently dangerous on their own; hearing damage is caused by sounds that are too loud, regardless of frequency.
Several government agencies and research organizations provide recommendations on acceptable sound levels for near-ultrasound. Generally, the standards assume a constant long exposure such as an 8-hour work day with the most conservative limit being 75dB. For just a few seconds or momentary exposure, which applies to most LISNR use cases, the minimum limit increases.