Mac OS X DFU SDK with CSR Support

The Device Firmware Upgrade (DFU) package provides all the software necessary to implement USB firmware update applications for Apple's macOS. It is specifically optimised Bluetooth peripherals, including designs based on Cambridge Silicon Radio's (CSR) chipsets and supports both classic and HID update modes over USB.

The software comprises a user-mode static library (source code available) that implements a complete standards compliant DFU driver, with interfaces in C++ and Cocoa/Objective-C. The core driver is fully customisable, and can be adapted to suit specific device requirements. An additional kernel component and installer can be supplied to provide compatibility for classic DFU devices on macOS versions older than 10.14.

The SDK includes a pre-built driver can be customised with your company name and identifiers. tSoniq can also supply signed driver binaries and installers compliant with Apple's new security restrictions in macOS 10.13 and 10.14.

For HID mode updates no kernel driver install is required, and we can supply native standalone command line tools for both Windows and macOS to factor out OS dependencies when developing cross-platform updater tools using portable frameworks such as Electron.

DFU Overview


Key features are:

  • Traditional or HID DFU capability
  • Native Apple application development or cross-platform support via a command line tool
  • extensible user-mode C++ core driver with support for firmware download, upload and verify
  • recovery of devices from failed updates (for example, due to USB cable disconnection)
  • kernel driver component prevents interference between CSR devices and the Apple macOS Bluetooth host stack ("classic" DFU only)
  • PSKEY support library for CSR devices("classic" DFU only)
  • compatible with any 64 bit Apple Mac running OS X 10.8 through to 10.14
  • extensive source-level and HTML documentation
  • flexible licensing options, including full source-code availability
  • Xcode 9.x development environment support
  • clean licence terms (no GPL contamination)

The package provides three main components.

The first is a sample application in Objective-C/Cocoa, supplied with full source code. This can be used as a starting point for customisation, or as an example reference for integration in to an existing code base.

The second is a static library. This provides Objective-C classes to support application development and C++ classes that provide the main driver implementation. By subclassing the main C++ driver class it is possible to adapt the driver to non-standard hardware (notably CSR based devices), without requiring modifications to the UI code.

The third layer is an optional kernel driver that is used to manage interactions between the standard Apple macOS USB stack and the device under update. This is required only if your device is potentially captured or in-use by the OS. The driver is needed for any device that presents a HID or Bluetooth personality at any point during the firmware update process.

Additionally we can provide customised command line tools for use from third party cross-platform application code. For more information please contact us for details of support for your prefered framework.

Robust Extensible Architecture

DFU Architecture


A clean architectural approach is used to ensure that applications are robust and responsive.

Where possible, driver components are implemented as user-mode C++ classes using a simple inheritance pattern to permit extensibility by the end-user.

The driver protocol implementation is single-threaded for ease of development, simplifying unit-test cases for maximum reliability. Multithreading support is then added by means of an RPC wrapper layer, while a further Objective-C/Cocoa interface provides the UI interaction.

This approach combines the best appliction fluidity and responsiveness, while also permitting driver development and customisation using a simple and robust single-threaded development model.

Flexible Licensing Options

We offer three ways to license the software, depending on your budget and requirements:

  • binary SDK (with pre-build driver and library, and full sample application source)
  • full source SDK (including the kernel/DFU driver source code)
  • custom application development to your specification

All packages include free maintenance updates for one year. We are also able to offer a proactive in-house test service to ensure that ongoing compatibility for your hardware and software against future OS revisions.

Compatibility and Warranty

The DFU SDK suppports all embedded devices compliant with the USB-IF DFU Specifications. It is optimised for use with CSR chipsets, avoiding potential driver conflicts with the Apple native Bluetooth stack and also providing support for CSR's DFU mode switching and PSKEY requirements.

The DFU SDK is designed to work with all Apple Macintosh computers running Mac macOS 10.8 or later.

The following table sumarises the current macOS SDK compatibility and future roadmap:

10.11El Capitan2015Full
10.13High Sierra2017Full

We stand by the quality of our software and can provide warranty and regression testing against both your device hardware/firmware and macOS updates.

Copyright tSoniq 2012-2019 Sitemap