Dusker Audio Integration with Sleepbar via BLE

27 Feb 2024 Oleksii Svitlychnyi

This story is about our collaboration with Dusker, a renowned company dedicated to creating audio products that enhance bedtime experiences.

Dusker’s Sleepbar v2.0 is a standout innovation in their product line.

This advanced sleep speaker uses bone conduction technology to deliver audio directly through a pillow, making it ideal for listening to music, audiobooks, sleep sounds, and podcasts. It’s designed for comfort with no buds or wires, ensuring a peaceful sleep environment that’s particularly considerate for couples, as the audio is only audible through the pillow, minimizing disturbance to the other person.

Dusker enlisted our expertise to develop a mobile application to pair with the Sleepbar v2.0 through Bluetooth Low Energy (BLE). This application will provide users with easy control of its features, from setting timers to adjusting sound settings with an advanced equalizer. Stay tuned for more details on the technical aspects of this development.

Main Application Features

Upon first launching the Dusker Sleepbar v2.0 app, users are greeted with a screen to enter their username. Entering this information initiates the device pairing process. The app requests Bluetooth access through a standard permission prompt. Once access is granted, users are redirected to the main screen. If a user attempts to add a device and Bluetooth is not activated, a notification appears, offering a shortcut to settings to enable Bluetooth. The search for devices continues for 15 seconds, after which, successful detection results in the display of device information. The device is automatically named based on the user’s name. If the connection fails, there’s an option for a retry search. Users can later rename their device by accessing the settings page and entering the device name editing mode. Following successful device pairing, users select from one to five sound profiles, choosing the one most suitable for what they plan to listen to through the sleep speaker. Once at least one sound profile is selected, users can navigate to the app’s main page. They can add new profiles from the available list later. There’s also an option to create a custom sound profile using an advanced equalizer, which will be discussed in more detail in the next chapter.

Tap or click on the image to enlarge it.

After configuring a profile, users name it and save it, returning to the device details page. We’ve implemented a timer mode in the app, allowing users to set a shutdown time for the sleep speaker. On the device details page, users can select the desired duration and save the timer settings. By default, the timer is off. We’ve also integrated a low battery notification feature. Users can activate it via a toggle in the settings. When enabled, and the battery level becomes critically low, the speaker emits a specific sound signal. If the feature is off, the speaker emits no sound signals when the battery is low.

Equalizer

For the Dusker Sleepbar v2.0 app, we have developed two equalizer modes – basic and advanced. In the basic equalizer editing mode, users can select a sound profile and edit its key parameters such as volume, bass, and sound clarity. The adjustment is made using simple sliders to increase or decrease these three parameters.

Upon completion, users can either save the changes or switch to the more advanced equalizer editing. This advanced mode allows users to fine-tune sound profiles using sliders or a graphical interface, adjusting volume, bass, and treble. The minimum and maximum values for each parameter range from -8 to +8. After the adjustments are made, the changes are saved, and the user returns to the device details page.

Supportive Features

On the settings page, we’ve introduced a reset feature. This allows users to delete all connected devices and sound profile settings. Following the reset confirmation, all data is erased, and the user is redirected to the welcome screen. The Frequently Asked Questions (FAQ) section is accessible from various screens, including the home page, ‘Device Not Found’ page, and settings page. This section contains five questions addressing the use of the Dusker Sleepbar v2.0, timer activation, troubleshooting, resolving issues with quiet or muted sound, and contact information for additional help. Users can contact support by clicking on the provided email address, which opens the standard email application on their device.

Implementing BLE Communication

In developing communication between the mobile app and Dusker’s Sleepbar v2.0, we created a module using Bluetooth Low Energy (BLE) technology. This module includes functionalities such as scanning nearby BLE devices, connecting to targeted devices, sending commands, and reading device information. Achieved by integrating a software development kit (SDK) provided by the sleep speaker manufacturer, the initialization of this functionality occurs at the app’s main entry point, ensuring BLE communication readiness upon app launch. The scanning and connection process to BLE devices involves initiating a scan of nearby BLE devices. Once scanning starts, new devices are identified and added to an available device list. When the user selects a device from the available ones, the application sends a command to pair with that device and exchanges security keys with it, ensuring a secure connection.The app is equipped to read various properties of the connected device, including music status, timer settings, alert volume, media volume, equalizer settings, battery level, and firmware version. During interaction with the device, the app continuously reads these properties in real time to display current information about the state and settings of the connected device. Most of these properties are updated as a result of user actions, which involve sending corresponding commands to the device, such as controlling the music player (play, pause), setting a shutdown timer, adjusting the volume of alerts and music, and equalizer settings. The device responds to instructions sent from the phone and sends back commands indicating event activation. The app registers event callbacks and processes them accordingly, ensuring real-time response to changes and commands from the connected device.

Additional Development Insights

Our mobile development team created native applications for iOS using Swift and for Android using Kotlin. The UX/UI design team, in collaboration with the business analysts, meticulously crafted a user-friendly experience and developed an original app design. Their focus was on creating an intuitive interface that simplifies complex functionalities, ensuring ease of navigation and interaction for users of varying technical backgrounds. Our Quality Control team conducted comprehensive testing of the application, including smoke testing, functional testing, and user interface testing. To distribute test builds, we employed Google Firebase for Android and TestFlight for iOS, facilitating efficient iteration and feedback processes. We also managed the deployment of the application on the Apple Store and Google Play Market. Following this, we have continued to provide technical support as required by the customer, ensuring the application remains up-to-date and functional, addressing any emerging issues or customer needs promptly.

Let’s Partner Up

Are you in search of a reliable partner for developing similar solutions? Our team of seasoned experts boasts extensive experience in application development and integration with Bluetooth-enabled devices. We are capable of integrating connected devices, whether with partially completed firmware from the manufacturer or by developing it from scratch. Reach out to us, and we will demonstrate our capabilities through the lens of completed IoT development projects.

Contact us today! Let’s start the discussion.

Ready to start the conversation?