Fluke FBLE Radio Module Developers Guide Fluke Mfg Co. Oct 8, 2013 V1.0 Fluke Corporation Telephone Facsimile PO Box 9090 Everett WA 98206.9090 USA 425.347.6100 Email 425.356.5108 http//www.fluke.
Table of Contents Table of Contents .......................................................................................................................................... 2 Introduction .................................................................................................................................................. 3 Comprehensive Integration Instructions for Fluke FBLE radio module ........................................................ 3 Interface to external Microprocessor ..........
Introduction This document is intended to allow developers to work with the CC2540 based BLE Slave Module. Comprehensive Integration Instructions for Fluke FBLE radio module LABELING REQUIREMENTS FOR END-PRODUCT The Original Equipment Manufacturer (OEM) must ensure that FCC labeling requirements are met. The FBLE module is labeled with its own FCC ID and IC Certification Number. The FCC ID and IC certification numbers are not visible when the module is installed inside another device.
support a number of BLE based service, the host processor can also generate a number of event items in a response style pack as well. Network Command Communication Unless otherwise noted in the detailed command description, all communications use the following process.
MA clocks out new command from MRA MA processes command from MRA MA Clocks data back to MRA once BUSY line is low. Return data is processed. Data is either stored in BLE stack for BLE Master, or sent back to BLE master via Notification command. Device Notification Communication The Notification style of data consists of a number of small data packets of variable length. This format allows common data that is grouped together to be sent over to the BLE radio as it is available.
Packet Type Description Enumeration Payload Command ACK (C_ACK) Response from the radio to the application upon receipt of a Control Command. 0x01 None Application ACK (A_ACK) Response from a slave to the master upon receipt of a Device Control Command which requires no data returned. 0x02 None Network Control Network Control Command. 0x03 See NetworkControlCommands Device Control Device Control Command.
Packet Field Length Packet Type Slave Device Number Time to Next Transmission Device Command Enumeration Payload CR C Size in Bytes 1 1 1 1 0-87 1 2 Single Data Transfer Packet Packet Field Length Packet Type RF Signal Strength Payload CR C Size in Bytes 1 1 1 0-89 2 Command Data Transfer Packet Packet Field Length Packet Type Payload CRC Size in Bytes 1 1 0-90 2 SPI Packet Field Definitions • • • • • Length o Number of bytes following the length field.
• • C_ACK or A_ACK Error o 0 = No error, 1 = Invalid Command, 2 = Invalid Device Number, 3 = CRC error. CRC o a 16-bit CRC. The CRC is calculated using a initial value of 0xffff, and a poly value of 0x8408. This is based on the CRC-16-CCITT algorithm. SPI Packets are Big-Endian Unless specified otherwise in this documentation, multi-byte numeric fields in BLE SPI packets are big-endian.
Also perform a checksum test. Power Off Power off the radio. 0x07 None C_ACK Get Data Get a information from the radio based on the interrupt. 0x08 Interrupt Status received from a Get Interrupt Status command. Depends on interrupt status (See Network Control Command Interrupts) Get Version Get the software version from the radio module. 0x09 None Radio software version in a Command Data Transfer Packet.
When the radio module needs to communicate with the application it requests service via the IRQ interrupt line. In response to this interrupt, the application will send the Get Interrupt Status command to the radio module. The radio will respond with a two byte interrupt status word detailed below. Depending on the interrupt cause, the application may then send the Get Data network control command, with the interrupt status word as a payload, to get further information from the radio.
Query Time Get the real time clock value. 0x11 None C_ACK or A_ACK or Time value contained in a Single Transfer Data Packet Erase Program Memory Erase the memory used to store the new program. 0x13 None C_ACK or A_ACK Store Program Store a fragment of Fragment the new program. 0x14 Code Fragment C_ACK or A_ACK Verify Program 0x15 None C_ACK or A_ACK Load Program Load the new program and reset.
• 1 byte value, unsigned integer, 0: Stop Logging, 1: start logging. • Logging Configuration data • Interval Duration 4 byte unsigned integer, log interval in seconds 4 byte unsigned integer, log duration in seconds • Time • A time value used to set a real time clock, 64 bit signed int, POSIX format. • Code Fragment • A fragment of the new code intended to replace the software in the remote device.
measuremen t data. All data is Size in ASCII characters. bytes d c Descriptio n 6 1 4 2 1 2 Allows for 4 digits, a decimal and a minus. Right justified . n, u, k, m, M, or space for no multiplier . V, A, OHMS, H, VHZ, F, DEGC, DEGF, R Left justified . ac or d c * if the bolt is on or spac e if not. The word 'in' or two spaces . 1 = TBD • System Status data o A multi-byte value containing the Logging state and settings, the system power information, and the firmware information.
from Power, 0 to 5:Charging 100 amming Flash, 3:Verif y in progres s, 4:Verif y passed, 5:Verif y failed 1:Lo gging , 2:Not Supp orted ber of byte s for logg ing in byte s. s for logg ing in byte s inter val in seco nds dura tion in seco nds 1= TB D • Time o A time value from the real time clock, 64 bit signed int POSIX format.
number who is ready to be talked with. 7-15 Reserved Network Control Commands and Responses are Big-Endian Unless specified otherwise in this documentation, multi-byte numeric fields in Network Control Commands, their payloads and their responses are BLE Custom UUID 1. Introduction In order to create non-standard Bluetooth Low Energy field, we needed to create a custom set of UUID values.
2.4. 0x1802 : IG Log Data Services • • CC254x Module: Active as of 00.00.06 IG Log Data Services (Get Logging status, Setup Logging parameters) 2.5. 0x1803 : IG Debug Services • • CC254x Module: Active as of 00.00.07 IG Debug Services (Send / RX data - additional debug items as needed -- MSP430 asserts?) 2.6. 0x1804 : TI OAD Service • • CC254x Module: Active as of 00.00.15 TI OAD Service (Firmware Update for the radio), moved to new number so TI devices don't try to update our devices.
• Force Drop - Writing anything to this item causes the BLE module to drop. This is a work around for Apple related issues, per Brady H. 3.6. 0x2905 : Set Locator State • • CC254x Module: Active as of 00.00.05 Set Locator State - write only uint8, 0 to turn off locator, 1 to turn on locator. 3.7. 0x2906 : IG Logging Status • • CC254x Module: Active as of 00.00.06 IG Logging Status - read only uint8 array, 9 bytes.
o Write a Enum to to this point ask the logging state machine to change. Changes can be seen via notification of the logging Status characteristic. o Enum Value Meaning 0x00 Stop logging 0x01 Start logging 0x02 Erase logged Data 3.10. 0x2909 : IG Debugging - Read • • CC254x Module: Active as of 00.00.07 IG Debugging - Read point. ASCII data, up to 87 bytes (see FWCS DCC payload size -this is matched to that.). No NULL needed. 3.11.
• • CC254x Module: Active as of 00.00.12 POSIX_TIME - Read / Nofity back point. Used to set or get the device time in POSIX format. See FWCS documentation for more info on how we use this value, 8 byte unsigned integer value. 3.16. 0x290F : Binary Reading • • CC254x Module: Active as of 00.00.
0x09 CNX_FW_CP_STATE_ERROR 0x0a CNX_FW_CP_STATE_BUFFER_FILLING 0x0b CNX_FW_CP_STATE_SWAP_FAIL 0x0c CNX_FW_CP_STATE_RADIO_INIT_QUERY 0x0d CNX_FW_CP_STATE_RADIO_INIT_OFF 0x0e CNX_FW_CP_STATE_RADIO_INIT_ON 0x0f CNX_FW_CP_STATE_RADIO_INIT_CHANGING Valu e Command Note 0x80 CNX_FW_CP_CMD_ERASE_MEM Erase the Flash Memory on the MSP430 0x81 CNX_FW_CP_CMD_CLEAR_BUF Clear the FW_UPDATE_BUF in the radio 0x82 CNX_FW_CP_CMD_WRITE_AND_CLEAR_ BUF Write the contents of the FW_UPDATE_BUF to the MSP4
0x87 CNX_FW_CP_CMD_RADIO_INIT_CHECK Query the initial radio state setting. 3.19. 0x2912 : CNX FW Update Buffer • • CC254x Module: Active as of 00.00.14 FW_UPDATE_BUF - CNX Style MSP430 Firmware Update Buffer. Used to allow the master to write up a buffer in chunks, and then write that using the Control point. This is done so we can use "write no response" in order to maximize the write speed. Clearing this buffer, and writing this buffer to the MSP430 is done via the FW_UPDATE_CP characteristic. 3.20.
Cmd State 00 Return total Number of Bytes 01 Lock the unit for bulk download, or unlock it. should be 0x00 for unlock, and 0x01 for lock 02 System will notify back data in MTU packet sized from start byte to end byte. 03 Cancel download. If data is comming in and the master wants to stope the transfer, send this command • Notify Back: Bytes, in 1 to 18 bytes notify Chunks.
TI - OAD Img Block Characteristic (UUID128 f000ffc204514000b000000000000000 ) Upgrade Process 1. Establish Connection between Slave and master. 2. Verify and configure connection. 1. Ensure connection rate is as fast as the master and slave will allow for. 2. Ensure that the slave has all the required services and characteristics. 1. Enable Notify on the <> characteristic. 2. Enable Notification on the <> characteristic. 3.
Multiple blocks can be written at once using the BLE "Write, No Response" command. For TI's BLE Stack (V1.3.x), we can write up to 4 blocks at one time. 4. Continue this process until all blocks are written. If a block isn't delivered (due to being sent with write, no response), the Radio will re-request it when the next block is written. 5. Loop though this process until all the blocks are written. 5. Wait for the disconnect. 1.
In this model a 'swap' area is erased, filled with data, and then verified. If it passes the verify, the data is copied back into the proper program space of the MSP430, and the device re-boots. Required Items • • • A Firmware File o a .HEX file, post-processed to ensure longer line length. (Shorter lines work too, but take much longer). o File must comply with CNX Verification needs (CRC at minimum, some unit type checking in some modules too.) System Hardware o A CNX style slave unit, with a BLE radio.
These are the lines from the .hex file, with the leading ':' removed, and the line checksum (last byte) removed, converted into binary. 2. Once a complete line is written send the "CNX_FW_CP_CMD_WRITE_AND_CLEAR_BUF" command to <> 3. Wait for the state to be notified as "CNX_FW_CP_STATE_BUFFER_CLEARED". 4. Repeat these steps until the entire hex file has been written out. 4. Verify download / Swap in new Firmware. 1.
Load New Firmware from Swap Area See command on FWCS SPI Network Control Commands. o Flash Erase o Flash Write o Flash Verify o Flash Swap o • Fluke Corporation Telephone Facsimile PO Box 9090 Everett WA 98206.9090 USA 425.347.6100 Email 425.356.5108 http//www.fluke.