Appiko
Steps for setting up the repository

These instructions are valid for a x64 Linux system with a Debian based environment.
First you need to setup the working environment and the repositories for editing and compiling the Firmware files.

Steps for compiling code and generating the hex files

Documentation with Doxygen

We use Doxygen for all our documentation. You can install Doxygen using:

   sudo apt-get install doxygen

Using a Debugger/Programmer

This repository supports two debuggers/programmers, namely Black Magic Probe (BMP) and Segger JLink.

For utilizing BMP

For getting started with the Black Magic Probe follow this guide.
On some Linux installations you may get permissions errors.

  /dev/ttyACM0: Permission denied

This can be fixed by adding your user to the dialout group as follows (you may need to log out and back in for this to take effect):

  $ sudo adduser <username> dialout


Then, as mentioned here create a file named /etc/udev/rules.d/99-blackmagic.rules with the following contents:

  # Black Magic Probe
  # there are two connections, one for GDB and one for uart debugging
  SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb"
  SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg"

Then unplug / replug the probe, or restart the computer.

For utilizing Segger JLink

  • Download the SEGGER JLink software pack from here
    The latest version at the time of writing for a x64 Debian based environment is V6.32i and can be found here
  • Get the nrfjprog to work with the JLink. Its not in the repository as it does not have an open license.

Using the proprietary nRF5x SDK

Get the components part of nRF5x SDK. Its not in the repository as it does not have an open license.

  • Download the zip folder of the nRF 15.0.0 SDK and extract it.
  • Copy the "components" folder of the SDK to the "nrf5x-firmare" repository and rename it as "SDK_components"
  • Edit the Makefile of the application you want to compile to set the INCLUDEDIRS, C_SRC_DIRS and C_SRC to the appropriate files and folders in the SDK.

Installing nrfutil

nrfutil is a Python package and command-line utility that supports Device Firmware Updates (DFU) and cryptographic functionality.
Follow these instructions to install this utility.

Setting up IDE

IDE(Integrated Development Environment) is useful for fast development of project. User can setup any IDE for project development.
User can also choose not to use any IDE at all. Two major IDEs which are used widely are:

  • Eclipse IDE
  • NetBeans IDE


It is advised to use the versions which comes with C/C++ plugins by default.
Follow the instructions given in following link to setup your IDE

NOTE : Use IDE only for development of application. While compiling and uploading of program use "make " utilities in terminal.