Skip to content

akhilghar/HCBG-SensorFiles

Repository files navigation

Bluetooth: Event Trigger

The Bluetooth® Event Trigger sample showcases the Event Trigger feature. It is a proprietary extension of the Bluetooth® protocol which can be used to schedule sampling, GPIO toggling, or other SW- or HW-based user activities in synchronization with individual Bluetooth LE role instances, such as a central or peripheral link.

The sample supports the following development kits:

.. table-from-sample-yaml::

You can use any two of the development kits mentioned above and mix different development kits.

Additionally, the sample requires a connection to a computer with a serial terminal for each of the development kits.

Note that the Event Trigger feature involves triggering a (D)PPI task directly from the SoftDevice Controller link layer, and therefore it is expected that the application and SoftDevice Controller are running on the same core.

After programming the sample to both development kits, test it by performing the following steps:

  1. Connect to both kits with a terminal emulator (for example, the `Serial Terminal app`_). See :ref:`test_and_optimize` for the required settings and steps.

  2. Reset both kits.

    You will be prompted:

    Choose device role - type c (central) or p (peripheral):
    
  3. In one of the terminal emulators, type c to start the application on the connected board in the central (tester) role.

  4. In the other terminal emulator, type p to start the application in the peripheral (peer) role.

  5. Observe that the kits establish a connection.

    Each kit outputs the following information:

    Press any key to switch to a 10ms connection interval and set up event trigger
    
  6. Press a key in either terminal.

  7. Observe that the link switches from a 100 ms connection interval to a 10 ms connection interval.

  8. The event trigger is configured to generate a software interrupt at each connection event for the link.

    During these software interrupts, a timestamp is recorded.

  9. Observe that these timestamps are printed in the terminal.

    The delta between triggers generally matches the connection interval. However, if the controller is not able to schedule a radio event for a given point in time, the event trigger will also be dropped.

  10. Observe that the central switches back to a 100 ms connection interval.

The sample displays the data in the following format:

*** Booting nRF Connect SDK v3.4.99-ncs1-4802-g41e34920abf4 ***
Starting Event Trigger Sample.
I: SoftDevice Controller build revision:
I: ba cb 53 9c e2 c9 de b6 |..S.....
I: 82 1d 9c b3 eb de c5 1f |........
I: 22 d8 45 99             |".E.
I: HW Platform: Nordic Semiconductor (0x0002)
I: HW Variant: nRF52x (0x0002)
I: Firmware: Standard Bluetooth controller (0x00) Version 186.21451 Build 3737772700
I: Identity: DA:1A:7B:0E:CC:5E (random)
I: HCI: version 5.4 (0x0d) revision 0x1174, manufacturer 0x0059
I: LMP: version 5.4 (0x0d) subver 0x1174
Choose device role - type c (central) or p (peripheral):
Peripheral. Starting advertising
Advertising successfully started
Connected: FB:8F:24:2D:84:79 (random)
Connection established.
Press any key to switch to a 10ms connection interval and set up event trigger:
Successfully configured event trigger
Connection parameters updated. New interval: 10 ms
Successfully configured event trigger
Printing event trigger log.
+-------------+----------------+----------------------------------+
| Trigger no. | Timestamp (us) | Time since previous trigger (us) |
|           1 |   199381378 us |                          9979 us |
|           2 |   199391388 us |                         10010 us |
|           3 |   199401398 us |                         10010 us |
|           4 |   199411377 us |                          9979 us |
|           5 |   199421387 us |                         10010 us |
|           6 |   199431396 us |                         10009 us |
|           7 |   199441376 us |                          9980 us |
|           8 |   199451385 us |                         10009 us |
|           9 |   199461395 us |                         10010 us |
|          10 |   199471375 us |                          9980 us |
|          11 |   199481384 us |                         10009 us |
|          12 |   199491394 us |                         10010 us |
|          13 |   199501373 us |                          9979 us |
|          14 |   199511383 us |                         10010 us |
|          15 |   199521393 us |                         10010 us |
|          16 |   199531372 us |                          9979 us |
|          17 |   199541382 us |                         10010 us |
|          18 |   199551392 us |                         10010 us |
|          19 |   199561371 us |                          9979 us |
|          20 |   199571381 us |                         10010 us |
|          21 |   199581390 us |                         10009 us |
|          22 |   199591370 us |                          9980 us |
|          23 |   199601379 us |                         10009 us |
|          24 |   199611389 us |                         10010 us |
|          25 |   199621399 us |                         10010 us |
|          26 |   199631378 us |                          9979 us |
|          27 |   199641388 us |                         10010 us |
|          28 |   199651398 us |                         10010 us |
|          29 |   199661377 us |                          9979 us |
|          30 |   199671387 us |                         10010 us |
|          31 |   199681519 us |                         10132 us |
|          32 |   199691376 us |                          9857 us |
|          33 |   199701385 us |                         10009 us |
|          34 |   199711395 us |                         10010 us |
|          35 |   199721375 us |                          9980 us |
|          36 |   199731384 us |                         10009 us |
|          37 |   199741394 us |                         10010 us |
|          38 |   199751373 us |                          9979 us |
|          39 |   199761383 us |                         10010 us |
|          40 |   199771393 us |                         10010 us |
|          41 |   199781372 us |                          9979 us |
|          42 |   199791382 us |                         10010 us |
|          43 |   199801392 us |                         10010 us |
|          44 |   199811371 us |                          9979 us |
|          45 |   199821381 us |                         10010 us |
|          46 |   199831390 us |                         10009 us |
|          47 |   199841400 us |                         10010 us |
|          48 |   199851379 us |                          9979 us |
|          49 |   199861389 us |                         10010 us |
+-------------+----------------+----------------------------------+

This sample uses the following `sdk-nrfxlib`_ libraries:

In addition, it uses the following Zephyr libraries:

About

Program files to flash onto the Human-Centered Breeze Generator's wearable sensor. (Note: these files work only for the temperature sensor. You will have to add ADC files yourself.)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors