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 Mac OS X. It is specifically optimised Bluetooth peripherals, including designs based on Cambridge Silicon Radio's (CSR) chipsets.

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.

The SDK includes a pre-built driver can be customised with your company name and identifiers. tSoniq can also supply signed driver binaries compliant with Apple's new security restrictions in Mac OS X 10.9 Mavericks and Mac OS 10.10 Yosemite.

DFU Overview

dfu-architecture-1

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 Mac OS Bluetooth host stack
  • PSKEY support library for CSR devices
  • compatible with any 64 bit Apple Mac running OS X 10.6 through to 10.11
  • extensive source-level and HTML documentation
  • flexible licensing options, including full source-code availability
  • Xcode 6.x or 7.x development environment support (Xcode 7 recommended)
  • 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 Mac OS X 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

dfu-architecture-2

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 OS X 10.6.8 or later and ensures compatibility with all Apple Macintosh computers released since 2008.

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

OSCodenameDateCompatibility
10.6Snow Leopard2009Full
10.7Lion2011Full
10.8Mountain Lion2012Full
10.9Mavericks2013Full
10.10Yosemite2014Full
10.11El Capitan2015Full
10.12SierraTBDFull

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


Copyright tSoniq 2012-2016 Sitemap