Learn Bluetooth Or Die Tryin

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.

5 thoughts on “Learn Bluetooth Or Die Tryin

  1. 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.

  2. 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 $@

      1. 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?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.