BLE KEYFOB™ Hardware and Installation Guide Version 1.0.
License Agreement FOR SOFTWARE, APPLICATION PROGRAMING INTERFACES (APIS) & DOCUMENTATION IMPORTANT: DO NOT INSTALL OR USE THE SOFTWARE OR DOCUMENTATION UNTIL YOU HAVE READ AND AGREED TO THIS LICENSE AGREEMENT. This is a legal agreement between you, the Customer, and CalAmp DataCom Incorporated (“CalAmp”). By installing and/or using the software or documentation, you are consenting to the terms of this License.
to CalAmp). CalAmp specifically retains title to all CalAmp Software, Documentation and Related Materials and CalAmp licensors retain title to items owned by them. DURATION: This License Agreement is effective from the day you install or start using the Software, or receive or download it electronically, and continues until terminated.
Software), disassemble or reverse engineer the Software; (7) Make any attempt to unlock or bypass any initialization system or encryption techniques utilized by the Software or Documentation; (8) Alter, remove or obscure any proprietary legend, copyright or trademark notice contained in or on Software, Documentation or Related Materials; or (9) use the Software to create an Application intended solely to duplicate functionality of an existing CalAmp end user software product.
Limited Warranty COVERING THE PHYSICAL MEDIA AND PRINTED MATERIALS: CalAmp warrants to you, the original licensee, that the media on which the Software is recorded are free from defects in materials and workmanship under normal use and service FOR A PERIOD OF NINETY (90) DAYS FROM THE DATE OF DEVELOPER LICENSE PURCHASE.
agree to assure that copies of this License Agreement are distributed, read and agreed to by each Developer using the Software and/or Documentation. GOVERNING LAW: This Agreement shall be governed by the laws of the State of California, United States, excluding its conflicts of law principles and excluding the United Nations Convention on Contracts for the International Sale of Goods.
Regulatory Information FCC Rules Compliance Statement (Part 15.19) The enclosed hardware device complies with the Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) This device must accept any interference received including interference that may cause undesired operation. FCC ID: APV-FOB10 IC ID: 5843C-FOB10 M/N: FOB10-BL Manufacture: CalAmp Corp. Warning (Part 15.
Driver ID Keyfob system design Table of contents Driver ID Keyfob system design .......................................................................................................... 1 Key Fob button pushes ..................................................................................................................... 10 Button state machine ignoring debouncing ................................................................................. 10 button state coded as 2 bits .........................
Build Process ................................................................................................................................. 27 Keyfob ........................................................................................................................................... 27 BTCS .............................................................................................................................................. 27 LMU ............................................................
Configuration for each button configuration units / bit Event Generation mask (see below) size (bytes) 1 default 00111100 Generate events on releasing button from short press & when long pressed & keep generating long press events until button is released.
OTP (factory set configuration) Description size (bytes) Cal Id 2 tx power calibration 4 (1 for each available power level) default 0xca1a (** to be confirmed by BT SIG) measured during ATE Keyfob button timing diagrams for common scenarios. Short press showing de-bouncing other buttons not pressed. Button 1 0 a b c d 0) Button is pushed at time zero. a) After de-bouncing button is determined as pressed but no message is generated.
Button 1 Button 2 0 a b b b b c d e f g h h i 0) Button 1 is pushed a) Button 1 ‘short press minimum time’; a short press event is generated and if configured a message is broadcast with button state 0b00000010 and reason code 0b00010001. b) Button 1 ‘short press repeat time’; a short press repeat event is generated and if configured a message is generated with button state 0b00000010 and reason code 0b00010001.
v cid 1 2 p fv 1 2 c crc 1 2 s 1 r 1 b a 1 1 Version letter encoding version letter ‘a’ ‘b’ ‘c’ ‘d’ ...... ‘y’ ‘z’ version of this message Set by customer/provisioning to allow a single customer to differentiate their devices from the mass. App id;for the keyfob this is 0x01 Version of keyfob firmware running on the keyfob. configuration version crc of the keyfob configuration (defined above) that will include CID, button config etc . Actual crc polynomial TBD.
advertisement (db) Scan response packet contents May contain uuids of services, name and any other static data. Overview of Bluetooth Automatic Driver ID process State Machine for driver ID discovery PEG Action Idle Not Found PEG Trigger Out of Range or PEG Action Finding Driver Fob Fob Found PEG Trigger PEG trigger Fob connected To mitigate contention where a FOB is in range of several LMUs the LMU will only look for FOBs when the PEG script executes PEG action.
• • • • • • Peg ignition trigger causes Peg BT_KEYFOB_DISCOVER action (TBD) for BT_KEYFOB_DISCOVER_TIME (configurable TBD) time. BT middleware starts discovery BT middleware populates discovered devices list including FOB ID and RSSI and TxPwr for all calamp keyfobs that match the BT_KEYFOB_CID (configurable 0-FFFE standard CID, FFFF is special case).
o o o o while connected PEG actions ACT_KEYFOB_LED (config TBD) cause BT-middleware to connect to the led service(TBD) and sound the buzzer according to the modifier (TBD) While connected BT-middleware connects to config service(config TBD) and ota management service(config TBD) and constructs a PULS ID report with the fob id as the unique identifier and the LMU id as an agent(TBD). If required LMU will download new config or firmware for fob.
Sequence diagram of discovery of driver id when only one fob in range
Sequence Diagram of discovery of driver ID using buzzer and button
Sequence diagram of connecting to a single fob to sound buzzer during driver id discovery
Bluetooth LE services Service Name Attribute Name LED pattern Buzzer Button Config/control OverAir download r/w size (bytes) r/w 3 pattern r/w 3 button r 2 Config reset RSSI r/w w r 16 1 8 notes New custom primary service Characteristic that defines the blink pattern 1st byte on time; 2nd byte off time; 3rd byte blink pattern least significant bit first is shifted to the LED; bit 1 implies on; LED turned off at end of pattern New custom primary service as above New custom primary service 1s
New PEG actions Action ACT_BT_KEYFOB ACT_BT _LISTSEND ACT_KEYFOB_OUTPUT Modifier 0 – DISCOVER/CONNECT 1 – HUP 0NONE B7-b6: Output Dest 0 – LED 1 – BUZZER Description Start discovery for a period of time send list of discovered keyfobs to server in an app message beep buzzer count (up to 4) times B5-b4: Pattern 0 – Slow 1Hz 1 – Fast 5Hz B3-b0: count None disconnect FOB Params BT_KEYFOB_DISCOVER_TIME BT_KEYFOB_CID BT_KEYFOB_PATHATT size (bits) 16 16 8 BT_KEYFOB_MODE 8 BT_KEYFOB_QUERY_DRIVER_TIMEOUT 8
Driver’s FOB Out-of-Range ‘Disconnect’ from BTCS is used to signal to LMU that driver’s ID is no longer valid. option 1) New/existing Peg trigger to allow peg to decide to rescan () and send a logoff message to server. option 2) If Ignition is still on, rescan automatically and follow driver ID discovery process.
LMU->Server: Fob OTA ID Report note right of Server: Checks fob's version against any queued\nupdates and determines if one is available Server->LMU: OTA Download available (App 107) note right of LMU: Check if have file already in OTA\n flash storage.
Name JSON type Contents “extensions” object "OTA":”|;”, "OTASTAT":”,,,,,” “which” array The number of this message (starting from 1), the number of messages in the report The OTA ID field in the OTASTAT value is initialised to 00000000 and updated when any App 107 message is received.
Work Breakdown Build Process Firmware Version Make sure that the build process automatically names the final binaries correctly and that there is exactly one place in the project that sets the version information. Keyfob Keyfob Over the air service we are currently working on this. Keyfob Advertisement packet Fully populate with at least static data Keyfob Button push advertisement This includes different advertisement timing; detection of button states; and reason coding.
LMU Modified ‘file’ Handling to allow LMU to ‘cache’ file. LMU Keyfob config ??? Puls or params? LMU passive scan for strongest keyfob Includes creating a list of ‘seen’ keyfobs; adding parameters BT_KEYFOB_CID, BT_KEYFOB_DISCOVER_TIME; adding PEG action ACT_BT_KEYFOB_DISCOVER. LMU report of ‘seen keyfobs’ Includes PEG action ACT_BT_KEYFOB_LISTSEND to generate the report and pretty documentation of the report contents.