1# Experimental port for Semtech SX1280 2.4 GHz Multi Protocol Controller 2 3## Overview 4 5This port targets the Semtech SX1280 radio controller. The Host Stack and the Controller (incl. Link Layer) run on a STM32 MCU, with the SX1280 connected via SPI. 6 7It uses the SX1280 C-Driver from Semtech to communicate with the SX1280. The main modification was to the SPI driver that uses DMA for full packets. 8 9## Status 10 11Only tested with the Miromico FMLR-80-P-STL4E module so far. On this module, the 52 Mhz clock for the SX1280 is controlled by the MCU. 12 13SEGGER RTT is used for debug output, so a Segger J-Link programmer is required. 14 15Uses 32.768 kHz crytstal as LSE for timing 16 17Support for Broadcast and Peripheral roles. 18 19The Makefile project compiles gatt_counter, gatt_streamer_server, hog_mouse and hog_keyboard examples. 20 21## Limitation 22 23### Advertising State: 24- Only Connectable Advertising supported 25- Only fixed public BD_ADDR of 33:33:33:33:33:33 is used 26 27### Connection State: 28- Encryption not implemented 29- Some LL PDUs not supported 30 31### Central Role: 32- Not implemented 33 34### Observer Role: 35- Not implemented 36 37### Low power mode - basically not implemented: 38- MCU does not sleep 39- SPI could be disabled during sleep 40- 1 ms SysTick is used for host stack although 16-bit tick time is provided by LPTIM1 based on 32768 Hz LSE. 41 42## Getting Started 43 44For the FMLR-80-P-STL4E module, just run make. You can upload the EXAMPLE.elf file created in build folder, 45e.g. with Ozone using the provided EXAMPLE.jdebug, and run it. 46 47## TODO 48 49### General 50- indicate random address in advertising pdus 51- allow to set random BD_ADDR via HCI command and use in Advertisements 52- support other regular adv types 53- handle Encryption 54 55## Low Power 56- enter STANDY_RC mode when idle 57- implement MCU sleep (if next wakeup isn't immediate) 58- sleep after connection request until first packet from Central 59- replace SysTick with tick counter based on LPTIM1 60- disable SPI on MCU sleep 61 62