This tutorial will outline the steps for adding PureModules functionality to any project on the NRF52 SDK.
For the purposes of this tutorial I will add PureModules to the Blinky Project in the nRF5_SDK_12.2.0_f012efa SDK provided by Nordic.
Step 1- Download and organize files.
From Scratch:
Step 1 can be accomplished by following this tutorial that outlines the steps for setting up the environment:
http://www.pureengineering.com/puremodules/nrfcodesetup
If you already have the SDK setup on your computer:
- Simply download the PureModules repo:
https://github.com/PureEngineering/PUREmodules
-Move the modules_examples and modules_libraries folders into a directory above your SDK location as shown in the image below.
Step 2- Prepare Blinky Project MakeFile.
- 2A - Navigate to the Makefile of the project you would like to add PureModules to. This tutorial will use the Blinky Project. In my case I navigate to:
> cd [YOURSDKDIRECTORY]\nRF5_SDK_12.2.0_f012efa\examples\peripheral\blinky\pca10040\s132\armgcc
-Lets alter the Makefile to add PureModules. Open your Makefile with your choice of TextEditor.
- 2B- Add the Modules_Library directory by first adding LIB_DIR variable as shown below.
LIB_DIR := ../../../../../../../modules_libraries
- 2C - Add the Module files to the SRC_FILES as shown below.
$(LIB_DIR)/i2c_driver.c \
$(LIB_DIR)/lis3mdl.c \
$(LIB_DIR)/lis2de.c \
$(LIB_DIR)/vl53l0.c \
$(LIB_DIR)/si1153.c \
$(LIB_DIR)/veml6075.c \
$(LIB_DIR)/bme280.c \
$(LIB_DIR)/ble_driver.c \
$(LIB_DIR)/supersensor.c \
$(LIB_DIR)/apds9250.c \
- 2D- Add twi (i2c) code and BLE code to the project under SRC_FILES above the PureModules
$(SDK_ROOT)/components/drivers_nrf/twi_master/nrf_drv_twi.c \
$(SDK_ROOT)/components/drivers_nrf/twis_slave/nrf_drv_twis.c \
$(SDK_ROOT)/components/ble/common/ble_advdata.c \
$(SDK_ROOT)/components/ble/ble_advertising/ble_advertising.c \
$(SDK_ROOT)/components/ble/common/ble_conn_params.c \
$(SDK_ROOT)/components/ble/common/ble_srv_common.c \
$(SDK_ROOT)/components/ble/ble_services/ble_nus/ble_nus.c \
Step 3- Configure sdk_config.h file to enable bluetooth and twi communication
sdk_config file is found here:
[YOURDIRECTORY[\nRF5_SDK_12.2.0_f012efa\examples\peripheral\blinky\pca10040\s132\config
Search for the variables and change the value to the designated value below:
#define BLE_ADVERTISING_ENABLED 1
#define BLE_NUS_ENABLED 1
#define GPIOTE_ENABLED 1 (0)
#define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 4 (1)
#define TWIS_ENABLED 1
#define TWIS1_ENABLED 1
#define TWI_ENABLED 1
#define TWI0_ENABLED 1
#define APP_UART_ENABLED 1
#define BUTTON_ENABLED 1
#define FSTORAGE_ENABLED 1
For RTT print:
#define NRF_LOG_BACKEND_SERIAL_USES_UART 0
#define NRF_LOG_BACKEND_SERIAL_USES_RTT 1
For UART print:
#define NRF_LOG_BACKEND_SERIAL_USES_UART 1
#define NRF_LOG_BACKEND_SERIAL_USES_RTT 0
Add this above APP_GPIOTE_ENABLED:
#ifndef APP_FIFO_ENABLED
#define APP_FIFO_ENABLED 1
#endif
Above: SLIP_ENABLED
// <q> RETARGET_ENABLED - retarget - Retargeting stdio functions
#ifndef RETARGET_ENABLED
#define RETARGET_ENABLED 1
#endif