I received a question about FSCI host and questions regarding to the FSCI Host Heart Rate Sensor demo provided as part of the KW40 Software Connectivity Package. First of all, we need to understand what is a FSCI, in order to explain this we need to know that there could be three types of system architectures when thinking on BLE applications. I will try to summarize these three types as shown next:
1. System on a Chip. It is when we develop all the application in the same chip, this is what we usually would implement when designing sensors using KW40. All the stack and applications is developed in one chip, KW40/KW30 in this case. Hence, we define #1 as the one in which we can perform everything using one chip.
2. Dual IC over HCI. It can be a type of architecture when big and powerful processor is needed in the application which is running BLE stack, hence, it only requires an external controller which receive HCI commands through serial interface like UART. In this case, KW40Z would be programmed with the "hci_app" included in KW40Z Connectivity Software package. Then, KW40Z would be acting as a controller.
3. Dual IC(Connectivity Device). Similar to #2, it is when a big and powerful processor is needed in the application, however, in this case, there is one difference, the BLE stack and the controller is implemented in the second IC. In this case, we can say that "big processor" is a K22F and the device which has BLE stack and controller is the KW40. It is a case which can be tested in the USB-KW40Z board. Hence, K22F would implement NXP proprietary protocol to control KW40 programmed with the "ble_fsci_app".
So, what is FSCI?, FSCI is the proprietary protocol that NXP introduced to create applications in which case #3 is required, basically, FSCI is a serial protocol developed to be able to control Connectivity Stack through serial commands. BLEHSFSCIRM.pdf document is provided to provide more information about the protocol when using BLE communcations, if customer is interested in IEEE 802.15.4 use case, 802154FSCIRM.pdf document can be referenced.
Now, when talking about the case #3, NXP introduces its FSCI proprietary protocol which is used to communicate between a bigger processor to the KW40. NXP provides an example about how to perform an application following this system architecture. Hence, since there are two processors in the system, it is required to have two applications:
1.ble_fsci_host_heart_rate_sensor. This application should be programmed in the K22F device on the USB-KW40Z.
2. ble_fsci_app. This application should be programmed in the KW40 device on the USB-KW40Z.
Both applications should be programmed through the SWD pin connectors available on USB-KW40Z. Hence, JLINK tool is required. Both applications are provided in the KW40Z Connectivity Software.
Once applications has been programmed on each device(K22F and KW40Z). Unplug and plug the USB-KW40Z from the PC and press SW1 button on USB-KW40Z.
Kinetis BLE Toolbox mobile application could be used to test the application. Select Heart Rate app of the Kinetis BLE Toolbox, then, FSH_HRS will be enumerated in the mobile application. Select FSL_HRS, then it will get connected and random heart rate measurements will be sent from the USB-KW40Z to the mobile application.