CONFIG_GPIO=y CONFIG_SOC_SERIES_NRF52X=y CONFIG_SOC_NRF52840_QIAA=y CONFIG_ARM_MPU=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y CONFIG_UART_0_NRF_UART=y CONFIG_ENTROPY_NRF5_THR_THRESHOLD=4 CONFIG_ENTROPY_NRF5_ISR_THRESHOLD=12 CONFIG_BT=y # Bluetooth Low Energy # -------------------- # # BLE is complex. I [tom] started out with no knowledge of Zephyr nor # BLE. Here is an attempt to document how things fit together. # # The options below are annotated where necessary, complementing # information found here: # # https://www.zephyrproject.org/getting-started-with-zephyr-rtos-on-nordic-nrf52832-hackable/ # https://gitlab.com/electronutlabs-public/blog/hackable_zephyr/-/blob/master/code/hackable_zephyr_ble/prj.conf # https://www.novelbits.io/bluetooth-gatt-services-characteristics/ # https://devzone.nordicsemi.com/f/nordic-q-a/99/notification-indication-difference # # # # Glossary of terms # # Glossary: # - GATT Generic Attribute Profile # - ATT Attribute Protocol # - SIG Special Interest Group # - UUID Universally Unique Identifier # # Basically, when you design a BLE device, you're designing a profile # (GATT). # # Concepts # - server: device that exposes data. accepts commands, sends responses, notifications, indications. # - client: device that reads server's data or controls server behavior # - profile: describes information that can be exchanged # - service: grouping of attributes, responds to commands, sends notifications, indications # - attribute: any unit of data exposed by a server (service, characteristic, ...) # - attribute type: UUID, 16 bit for official SIG attributes, or 128 bit for custom # - attribute handle: 16 bit indirection to attribute, constant during connection # - characteristic: lowest level attributes # - response: reply to command # - notification: asynchronous server->client message # - indication: notification with ack # Increased stack due to settings API usage # FIXME: What is settings API? CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_BT=y # Send BT debug info to console CONFIG_BT_DEBUG_LOG=y # Security Manager Protocol CONFIG_BT_SMP=y # Data Signing CONFIG_BT_SIGNING=y # Peripheral Role CONFIG_BT_PERIPHERAL=y # Enable GATT Device Information service CONFIG_BT_GATT_DIS=y # Number of ATT prepare write buffers. # https://epxx.co/artigos/bluetooth_gatt.html CONFIG_BT_ATT_PREPARE_COUNT=2 # Privcacy Feature support. Enables Resovable Private Addresses (RPAs) CONFIG_BT_PRIVACY=y CONFIG_BT_DEVICE_NAME="ble_simple" # https://www.bluetooth.com/specifications/assigned-numbers # https://www.novelbits.io/bluetooth-gatt-services-characteristics/ CONFIG_BT_DEVICE_APPEARANCE=833 CONFIG_BT_DEVICE_NAME_DYNAMIC=y CONFIG_BT_DEVICE_NAME_MAX=65 CONFIG_BT_SETTINGS=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_FCB=y CONFIG_SETTINGS=y CONFIG_SETTINGS_FCB=y