Skip to content
This repository has been archived by the owner on Aug 17, 2023. It is now read-only.

aws/amazon-freertos-ble-ios-sdk

image DEPRECATED

Announcement:

As of July 31st, 2023, this repository is deprecated. The contents of this repository will remain available but we will no longer provide updates nor accept new contributions and pull requests. We recommend instead that you start here for creating interactions between an iOS device and AWS. For Bluetooth Low Energy APIs we recommend you start here.

Since the initial release of this package, several new iOS versions have been released bringing with them enhanced security and usability. AWS Amplify has also released dozens of later versions of the AWS SDK with many new features and bug fixes.

The amazon-freertos-ble-ios-sdk is being deprecated to remove an example built on outdated code.

Have more questions? Post them in the FreeRTOS forum.

iOS SDK for FreeRTOS Bluetooth Devices

CocoaPods Version License Platform Build Status

Introduction

Using the iOS SDK for FreeRTOS Bluetooth Devices, you can create mobile applications that do the following:

  • Scan for and connect to nearby BLE devices running FreeRTOS

  • Provision Wi-Fi networks for a BLE device running FreeRTOS

  • Act as a proxy for transmitting MQTT messages between a device running FreeRTOS and the AWS IoT cloud

Setting Up the SDK

To install the iOS SDK for FreeRTOS Bluetooth Devices

  1. Install CocoaPods:
$ gem install cocoapods
$ pod setup

Note

You might need to use sudo to install CocoaPods.

  1. Install the SDK with CocoaPods (In Podfile):

Newer version of the freertos firmware use CBOR encoding, please use:

pod 'AmazonFreeRTOS'

Older version of the freertos firmware use JSON encoding, please use:

pod 'AmazonFreeRTOS', :git => 'https://github.com/aws/amazon-freertos-ble-ios-sdk.git', :tag => '0.9.4'

For FreeRTOS

https://github.com/aws/amazon-freertos release 201906.00_Major and after

Contents

All main functions are defined in

AmazonFreeRTOSManager.swift

AmazonFreeRTOSDevice.swift

These functions include:

AmazonFreeRTOSManager

BLE Helper Functions

The SDK includes some functions that help you perform BLE operations with Amazon FreeRTOS devices:

// Start scan for FreeRTOS devices.
startScanForDevices()

// Stop scan for FreeRTOS devices.
stopScanForDevices()

//  Disconnect. Clear all contexts. Scan for FreeRTOS devices.
rescanForDevices()

AmazonFreeRTOSDevice

BLE Helper Functions

The device ble options:

// Connect to the FreeRTOS device.
connect(reconnect: Bool, certificateId: String? = nil, credentialsProvider: AWSCredentialsProvider? = nil)

// Disconnect from the FreeRTOS device.
disconnect()

MQTT Proxy Service

MQTT proxy service start automatically

Network Config Service

The network configuration service configures the Wi-Fi network of the FreeRTOS Device. Its functions include:

listNetwork(_ listNetworkReq: ListNetworkReq)
saveNetwork(_ saveNetworkReq: SaveNetworkReq)
editNetwork(_ editNetworkReq: EditNetworkReq)
deleteNetwork(_ deleteNetworkReq: DeleteNetworkReq)

Documentation

https://aws.github.io/amazon-freertos-ble-ios-sdk/

Demo Application

The SDK includes a demo application that demonstrates some of the main features of the SDK. You can find the demo in Example/AmazonFreeRTOSDemo.

License

This library is licensed under the Apache 2.0 License.