This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

how can I make nRF52832 talk to nRF51822 (BLE)

I want nRF52832 to be a central device which will take an input from nRF51822 (peripheral device). Also, Is it possible to make two nRF51822 talk to each other?

  • You should be able to do both of those things just fine. It's not clear how you want them to "talk", but you should probably find a starting point in the examples Most of the examples have been around for a long time, so even if you're using s132 on one device and s110 on the other, you can probably just use s132 with an example from the latest SDK and s110 with an example from something older.

  • nRF51 examples were discontinued in SDK v13.x but they are all there till v12.3.0. Also using S130 on nRF51 is probably the best way to go today (S130 v2.0.1 is the latest and greatest - and maybe the last - evolution of Nordic stack fro nRF51). I would say that for newcomer the easiest way is to take nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\ble_app_uart\pca10028\s130\arm5_no_packs\ble_app_uart_pca10028_s130.uvprojx Keil project on nRF51 DK side and nRF5_SDK_12.3.0_d7731ad\examples\ble_central\ble_app_uart_c\pca10040\s132\arm5_no_packs\ble_app_uart_c_pca10040_s132.uvprojx on nRF52 DK side. Nordic BLE UART Service (NUS) examples should work against each other flawlessly regardless what platform you use.

  • I was not able to find any example where BLEnano can talk to BLEnano. Can you please share the link? I want to transmit some integer values from one to the other.

  • There is of course no example of exactly BLEnano board in Nordic SDK, because simply Nordic don't produce them However modifying any example to different HW layout (when it shares the chip variant with the original) is super easy: as board headers are included in every project, just define BOARD_CUSTOM globally in your project - e.g. in Makefile - and then create custom_board.h with desired content (e.g. by starting from some Nordic PCAxxxxx.h file as example). You can see more about that construction in .\components\boards\boards.h. I usually use even two stage approach so I define both BOARD_CUSTOM and BOARD_BLENANO (in your case) and then write just basic if/else sequence in custom_board.h pointing to actual header file with all the functional defines and values (e.g. board_blenano.h file in your case).

  • Finally make sure LF clock source matches with what you have on the board and RAM/ROM memory alignment is right for your nRF5x chip and Soft Device variants and you are done. I would actually bet this construct is already somewhere on the GitHub as BLEnano should be pretty popular in the open source community, however I'm lazier then you are so I leave it with you.

Related