BLE FOTA


The development team of Bluetooth Low Energy based Firmware Over The Air with Mbed. Mbed part is a external processor of the IoT devices and communicate with a Bluetooth module. The Bluetooth module have to support BLE and implement BLE FOTA profile designed by ours. BLE FOTA profile specification is available from our GIT hub wiki(https://github.com/sevencore/BLEFOTA).

external_processor_host_app

SC-BF-Ext Module Host Application

0. Revision History

  • July. 29th 2015, Development Document Organize

1. Terms and definitions

  • (S)RAM (Static) Random Access Memory
  • FOTA Firmware Over The Air
  • SW SoftWare
  • UUID Universal Unique ID
  • DISS Device Information Service Server
  • BT Bluetooth

2. References

  1. Dialog Semiconductor, DA14580 Datasheet
  2. Dialog Semiconductor, DA14583 BLE-FOTA Full Host Software
  3. Dialog Semiconductor, DA14583 External Processor Software
  4. Dialog Semiconductor, UM-B-017_DA14580_GTL_interface.pdf
  5. Dialog Semiconductor, RW-BLE-GAP-IS.pdf

3. Introduction

This document describes the design and implementation of software as a host application that is running on the SC-BF-Ext module. This document presents mbed project directory configuration and explains source code structure in each directory. And this document describes software architecture to communicate between ARM cortex M3 external processor and BLE chip(Dialog DA14583). DA14583 chip solution hardware architecture can be referenced from http://support.dialog-semiconductor.com/.

4. Mbed Application Code Directory Tree

Below (Figure 1) shows whole project directory of host application, and defines each roles of directories.

/media/uploads/jwpark/direc_tree.jpg

  • dialog_fota : TASK app, FOTA app and DISS app [4] are implemented. This codes generate message to send to dialog DA14583.
  • ext_fota : This consists of class related to communicate with external processor. This is "Communicator" in charge of communication with DA14583. This is composed of "BldMsgHandler" that manages BLE communication messages, "MsgQueue" class that embodies messages and "SerialManager" class that manage serial communication.
  • main.cpp : Main function.

5. Mbed Communicator Software Design

"ext_fota" directory includes "Communicator" code that manage communication with DA14583. "BleMsgHandler" class controls "SerialManager" and "MsgQueue" as the main class. Instance reference of "SerialManager" is get as a parameter, when "BleMsgHandler" instance is generated. "MsgQueue" is generated internally by declaring "BleMsgHandler".

(Figure 2) shows internal flow of "Communicator". "SerialManager" receives message of DA14583 and sends to "MsgQueue". When "MsgQueue" receives messages, "BleMsgHandler" links a function of the dialog app as a message types. Dialog app functions generate message as Dialog Message Sequence [5] and send the message through "SerialManager".

/media/uploads/jwpark/mbed_communicator.jpg


All wikipages