Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Proximity/readme.txt')
-rw-r--r--Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Proximity/readme.txt144
1 files changed, 144 insertions, 0 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Proximity/readme.txt b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Proximity/readme.txt
new file mode 100644
index 000000000..e7bddfb01
--- /dev/null
+++ b/Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE_LLD/BLE_LLD_Proximity/readme.txt
@@ -0,0 +1,144 @@
+/**
+ @page BLE_LLD_Proximity example
+
+ @verbatim
+ ******************** (C) COPYRIGHT 2020 STMicroelectronics *******************
+ * @file BLE_LLD/BLE_LLD_Proximity/readme.txt
+ * @author MCD Application Team
+ * @brief Description of the BLE LLD BLE_LLD_Proximity application
+ ******************************************************************************
+ *
+ * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ *
+ * This software component is licensed by ST under Ultimate Liberty license
+ * SLA0044, the "License"; You may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at:
+ * www.st.com/SLA0044
+ *
+ ******************************************************************************
+ @endverbatim
+
+@par Example Description
+
+How to use BLE LLD to detect nearby boards?
+
+This solution can be used in contact tracing for Covid-19 since it provides an
+estimation of the distance with other boards.
+
+For this to work, all the boards use the same basic protocol:
+ - periodically sends its unique ID
+ - listens for nearby boards’ IDs the rest of the time
+
+Pitfalls:
+ - since this protocol uses broadcasts, acknowledgment must not be sent
+ - to ensure fairness, all the boards must use the same period
+ - with a perfectly fixed period, if 2 boards transmit at the same time, their
+ transmissions will always collide, so a random offset is added at the end
+ of each period before actual transmission to avoid that.
+
+Improvements:
+No power save is implemented for now, but this can be added using the same
+protocol.
+
+@note BLE LLD and HAL overview
+ LLD and HAL have the same goal, provide low level radio communication between
+ devices, using BLE radio hardware.
+
+ LLD is implemented on top of BLE PHY.
+ This layer provides the most control over radio core, so is more complicated
+ to use than HAL.
+
+ HAL is implemented on top of LLD.
+ This layer provides basic control over the radio core, so is more simple to
+ use than LLD.
+
+This application only uses HAL.
+
+@par Keywords
+
+BLE_LLD, Connectivity, BLE, LLD, IPCC, HAL, Dual core, send and receive Packet
+
+@par Directory contents
+
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/app_ble_lld.h Header for app_ble_lld.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/ble_lld.h Header for ble_lld.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/ble_lld_private.h Header for ble_lld private module
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/tl_dbg_conf.h Header for ble_lld debug module
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/ring_buffer.h Header for ring buffer.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/app_ble_lld.c contains TL management and Buffer for BLE LLD Application
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/ble_lld.c contains LL and HAL API
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/App/ring_buffer.c contains ring buffer API
+ - BLE_LLD/BLE_LLD_Pressbutton/STM32_WPAN/Target/hw_ipcc.c IPCC Driver
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/app_common.h Header for all modules with common definition
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/app_conf.h Parameters configuration file of the application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/app_entry.h Parameters configuration file of the application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/gpio_lld.h Parameters for gpio configuration file of the application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/hw_conf.h Configuration file of the HW
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/hw_if.h Configuration file of the HW
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/proximity_app.h Header for Proximity Application proximity_app.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/main.h Header for main.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/stm_logging.h Header for stm_logging.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/stm32_lpm_if.h Header for stm32_lpm_if.c module
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/stm32wbxx_hal_conf.h HAL configuration file
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/stm32wbxx_it.h Interrupt handlers header file
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Inc/utilities_conf.h Configuration file of the utilities
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/app_entry.c Initialization of the application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/gpio_lld.c GPIO for application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/hw_uart.c UART Driver
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/proximity_app.c Proximity program
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/main.c Main program
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/stm_logging.c Logging for application
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/stm32_lpm_if.c Low Power Manager Interface
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/stm32wbxx_it.c Interrupt handlers
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/system_stm32wbxx.c stm32wbxx system source file
+ - BLE_LLD/BLE_LLD_Pressbutton/Core/Src/stm32wbxx_hal_msp.c HAL MPS for application
+
+@par Hardware and Software environment
+
+ - This application uses two STM32WB55xx devices.
+
+ - This example has been tested with an STMicroelectronics STM32WB55RG-Nucleo
+ board and can be easily tailored to any other supported device
+ and development board.
+
+ - On STM32WB55RG-Nucleo, the jumpers must be configured as described
+ in this section. Starting from the top left position up to the bottom
+ right position, the jumpers on the Board must be set as follows:
+
+ CN11: GND [OFF]
+ JP4: VDDRF [ON]
+ JP6: VC0 [ON]
+ JP2: +3V3 [ON]
+ JP1: USB_STL [ON] All others [OFF]
+ CN12: GND [OFF]
+ CN7: <All> [OFF]
+ JP3: VDD_MCU [ON]
+ JP5: GND [OFF] All others [ON]
+ CN10: <All> [OFF]
+
+@par How to use it?
+
+Follow this procedure to run the demo:
+ - Connect at least 2 STM32WB55xx-Nucleo boards to your PC
+ - Open your preferred toolchain
+ - Rebuild all files and load your image into one target memory
+ - Rebuild all files of BLE_LLD/BLE_LLD_Proximity application
+ and load your image into the other target memory
+ + load stm32wb5x_BLE_LLD_fw.bin
+ - With a terminal emulator, open a connection to the serial port of one board
+ (115200 bauds 8 bits no parity 1 stop bit)
+ - Move boards relatively to each other to see updates
+
+Exemple:
+@verbatim
+Device ID: 26321
+
+Nearby devices:
+ ID | power | timestamp
+----------------------------
+ 47772 | 207 | 9312368
+ 521961 | 177 | 9558549
+@endverbatim
+
+ * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
+ */ \ No newline at end of file