Implementing a Bluetooth Low Energy (BLE) device from scratch can be a daunting task. If you’re looking for an incredibly detailed walkthrough of developing a BLE project from essentially the ground up, you’ve now got a lot of reading to do: [Jocelyn Masserot] takes you through all the steps using the ARM-Cortex-M0-plus-BLE nRF51822 chip.
The blog does what blogs do: stacks up in reverse-chronological order. So it’s best that you roll on down to the first post at the bottom and start there. [Jocelyn] walks you through everything from setting up the ARM compiler toolchain through building up a linker script, blinking an LED, flashing the chip, and finally to advertising your device to your cell phone. It’s a lot of detail, but if you’re doing something like this yourself, you’re sure to appreciate it.
Of course, all the code is available for you to crib peruse on [Jocelyn]’s GitHub. And for yet more background reading on BLE, check out the Hackaday Dictionary.
Oh brilliant I just setup and compiled my own nRF51822 and was looking for some tutorials and inspiration.
Its possible to program the nRF51822 using the Arduino IDE, and also by using mbed.
(The Arduino way actually uses mbed files as its underpinnings)
Nordic also have a detailed blog entry on how to program this device using Eclipse (but its a fairly complex setup)
I’ve tried all of the above, and all work ok.
BTW. You can make a cheap SWD programmer that supports the nRF51822 by flashing the (open source) Black Magic Probe, onto a $3 STM32F103C8 board, using a USB to serial adaptor.
In tutorial [https://diyiot.wordpress.com/] there is an error in MakeFile can you help me find it?
make returns:
Makefile:42: *** missing separator. Stop.
its on line:
$(CC) -c $(CPFLAGS) -I . $(INCLUDE_DIR) $< -o $@
I updated the toolchain, it should fix the problem.
I have pulled from git, sorry, not working :(
Getting this:
$ make
../toolchain/arm_cm0/bin/arm-none-eabi-gcc -c -o src/main.o src/main.c
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 1: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc:
: not found
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 1: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc: �����X
��!H__PAGEZERO�__TEXT
__text__TEXT��L��__text_cold__TEXTVhVh�__text_startup__TEXT: not found
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 2: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc: �v: not found
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 3: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc: __eh_frame__TEXT�z: not found
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 4: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc: ���z: not found
../toolchain/arm_cm0/bin/arm-none-eabi-gcc: 1: ../toolchain/arm_cm0/bin/arm-none-eabi-gcc: Syntax error: end of file unexpected (expecting “)”)
: recipe for target ‘src/main.o’ failed
make: *** [src/main.o] Error 2
I do not even understand not found part. what is not found?