NRF52 SDK
Setup Toolchain
- Official SDK - https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download
- SDK 16.0 - wget https://www.nordicsemi.com/-/media/Software-and-other-downloads/SDKs/nRF5/Binaries/nRF5SDK160098a08e2.zip
Folder Examples
- PCA10040 for NRF52832, NRF52810
- PCA10056 for NRF52840
- PCA10028 for NRF51
For ARM GCC
- Set in /home/he/nrf/components/toolchain/gcc/Makefile.posix
- Set GNU_INSTALL_ROOT ?= /usr/bin/
Compile Blink
- locate file at example folder: /nrf/examples/peripheral/blinky/pca10056/blank/armgcc
- make directly, and output
... Compiling file: nrf_memobj.c Compiling file: nrf_ringbuf.c Compiling file: nrf_strerror.c Compiling file: nrfx_atomic.c Compiling file: main.c Compiling file: system_nrf52840.c Linking target: _build/nrf52840_xxaa.out text data bss dec hex filename 1592 108 28 1728 6c0 _build/nrf52840_xxaa.out Preparing: _build/nrf52840_xxaa.hex Preparing: _build/nrf52840_xxaa.bin DONE nrf52840_xxaa
Blink
Keil
MDK Demo code
- Demo code folder at C:\MDKARM_v5\ARM\PACK\NordicSemiconductor\nRF_Examples\11.0.0-2.alpha
Example
- Blink demo C:\MDKARM_v5\ARM\PACK\NordicSemiconductor\nRF_Examples\11.0.0-2.alpha\peripheral\blinky\pca10040\blank\arm5
Board definition file
- C:\MDKARM_v5\ARM\PACK\NordicSemiconductor\nRF_Examples\11.0.0-2.alpha\bsp
- Define all perpherial here, includes LEDs, buttons, etc.
Programmer
nrfutil python
- pip3 install nrfutil
- nrfutil pkg generate --help
- nrfutil pkg generate --hw-version 52 --sd-req 0x00 --application-version 1 --application app.hex app_dfu_package.zip
Compiler
Keil
Setup for DAPLINK for NRF52832
- tick reset and run
- RAM for algothirum, start at 0x20000000, size 0x2000
- Add programming as image
old
- NRF52 Series in Keil
- Project add core and startup
- Options for target: 16mhz, tick "use microLB"
- IROM1: start 0x0 size 0x80000
- IRAM1: 0x20 000 000, size 0x10000
Arduino Support
https://github.com/sandeepmistry/arduino-nRF5
- Require J-Link or DK board, intall mbed driver
- Use sketch -> upload via programmer
https://forum.mysensors.org/topic/9266/guide-nrf5-nrf51-nrf52-for-beginners
- Use mysensor arduino board (ebyte) and arduino nRF5
Error and Bugs
For Keil
- Also need to install 8.27, 8.28, 8.29 device family from here https://developer.nordicsemi.com/nRF5_SDK/pieces/nRF_DeviceFamilyPack/
For Arduino Upload Error
- Check if the board in DFU mode, LED blink in 'timebome' sequence
- Disconnect and reconnect FTDI cable
Demo Video
- Send 00 / 01 to control LED - https://www.youtube.com/watch?v=w0axAV4OE-w