RF24Revamped Portability ======================== The RF24Revamped radio driver mainly utilizes the `Arduino API `_ for GPIO, SPI, and timing functions, which are easily replicated on various platforms. Support files for these platforms are stored under *RF24Revamped/utility*, and can be modified to provide the required functionality. Basic Hardware Template *********************** RF24Revamped/utility -------------------- The RF24Revamped library now includes a basic hardware template to assist in porting to various platforms. The following files can be included to replicate standard Arduino functions as needed, allowing devices from ATTiny to Raspberry Pi to utilize the same core RF24Revamped driver. .. csv-table:: :header: File, Purpose "`RF24_arch_config.h `_", "Basic Arduino/AVR compatibility, includes for remaining support files, etc" "`includes.h `_", "Linux only. Defines specific platform, include correct *RF24_arch_config* file" "`spi.h `_", "Provides standardized SPI (``transfer()``) methods" "`gpio.h `_", "Provides standardized GPIO (``digitalWrite()``) methods" "`compatibility.h `_", "Provides standardized timing (``millis()`` and ``delay()``) methods" "your_custom_file.h", "Provides access to custom drivers for spi, gpio, etc" Examples are provided via the included hardware support templates in `RF24Revamped/utility/Template `_ Device Detection ---------------- 1. The main detection for Linux devices is done in the configure script, with the *includes.h* from the proper hardware directory copied to *RF24Revamped/utility/includes.h* 2. Secondary detection is completed in *RF24_config.h*, causing the *include.h* file to be included for all supported Linux devices. 3. *RF24Revamped.h* contains the declaration for SPI and GPIO objects ``spi`` and ``gpio`` to be used for porting-in related functions. Ported Code *********** To have your ported code included in this library, or for assistance in porting, create a pull request or open an issue at https://github.com/nRF24/RF24/