This article briefly describes the complexities of and our experience in implementing mobile applications that control BLE enabled speakers.
Read What Is BLE? Article
Bluetooth Solution
During the last 2 years, we developed a number of mobile applications to control consumer hardware (e.g. speakers, keyboards, mouses, etc.). We created solutions for major mobile platforms, but integrating Bluetooth speaker support is not without its challenges.
Our goal was to support iOS (version 6.0 and above) and Android (version 4.0 and above). The software extends basic speaker functionality by using custom ADK 3.0 based firmware. The following list gives additional information regarding the complexity of BLE (Bluetooth LE) and other audio projects.
Bluetooth:
- Native Bluetooth device detection and data transfer
- Bluetooth speaker accessory feature support
Bluetooth LE Support:
- Speaker Bluetooth LE support detection
- Bluetooth LE device detection
- Bluetooth LE communication
Speaker Communication:
- Communication layer architecture design
- Communication layer between device and speaker
- Communication layer thread safety
- Support for multiple speaker types
- Speaker firmware support for numerous models
- Request queue optimization
- Dynamic file transfer to speaker
Firmware:
- Firmware update via Bluetooth
- Firmware update detection manager
- Multithreaded file download with resume download option
- Distinguishing between firmware bugs and application bugs
Speaker Recognition:
- Speaker manifest (information about speaker) synchronization with server
- Unknown speaker UI support
Additional Features:
- Robust alarm service with speaker alarm synchronization and backup
- Dynamic special offers system with HTML5 support
- Flurry analytics system integration with complex data mining post-processing
iOS Related:
- Speaker volume synchronization with iOS
- Dual-speaker support
- Memory leak detection in UI (pointer leaking and bitmap memory leaking)
Android Related:
- iOS-like navigation panel
- Custom time picker
- Render optimization
- Console test application with unit test and schedule support
UI:
- Vector graphics (all icons and images)
- Custom UI elements
- Multi-resolution support
- Interface animation
- UI synchronization with speaker state (color, mode, status, etc.)
- Dynamic content (SVG files for unknown speakers) downloaded via content manager
- Speaker communication error handling
- Localization (more than 12 languages supported)
- Speaker SVG rendering pipeline
Once all of these objectives were met and testing was completed, the product was successfully released. Our well-known client received positive reviews from millions of consumers for both their hardware and our software integration.
Terminology
Bluetooth is a wireless technology standard for exchanging data over short distances (using short-wavelength UHF radio waves in the ISM band from 2.4 to 2.485 GHz). Both fixed and mobile devices use the technology, which is also useful in building personal area networks (PANs).
Bluetooth low energy or Bluetooth LE, marketed as Bluetooth Smart, is a wireless personal area network technology targeted at novel applications in the healthcare, fitness, beacons, security, and home entertainment industries. Compared to Classic Bluetooth, Bluetooth Smart consumes considerably less power while maintaining a similar communication range.
Firmware is the combination of persistent memory and the program code and data stored in said memory. Typical examples of devices containing firmware are embedded systems (such as traffic lights, consumer appliances, and digital watches), computer peripherals, speakers, and digital cameras.
Useful Links
http://www.csr.com/news/white-papers
http://www.btspeaker.cn/csr/adk3.0/
https://www.bluetooth.org/tpg/RefNotes/RIN for ADK.pdf
App Development: #Mobile Apps to Control #Bluetooth Low Energy-Enabled #Speakers: http://t.co/H9i28Ilpyo via @developexcom
— Developex (@developexcom) December 24, 2014