🛠 Premier périphérique BLE avec le nRF Connect SDK
The SDK to use
The nRF Connect SDK (NCS) is the official SDK for the nRF52833: the kit's Product Brief states verbatim that the NCS is the development SDK for this SoC, with board support. It integrates Zephyr RTOS, the Bluetooth LE/mesh stack, and the OpenThread port. The target is named nrf52833dk/nrf52833. The old nRF5 SDK (v16.0.0 cited in the 2019 User Guide) is legacy — for a new BLE project, go with the NCS.
Step 1 — Install the NCS
The easiest way: the graphical installer "nRF Connect for Desktop" with its toolchain manager, then west init -m https://github.com/nrfconnect/sdk-nrf --mr main ncs and west update. The upstream Zephyr path also works on this board (it is "Maintained" upstream); the examples below work in both trees.
Step 2 — The advertising firmware
A minimal connectable advertiser, as documented for the board:
/* beacon.c — NCS 2.x ; sur Zephyr récent BT_LE_ADV_CONN
* est devenu BT_LE_ADV_CONN_FAST_1 */
#include <zephyr/kernel.h>
#include <zephyr/sys/util.h>
#include <zephyr/bluetooth/bluetooth.h>
static const struct bt_data ad[] = {
BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR),
BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME,
sizeof(CONFIG_BT_DEVICE_NAME) - 1),
};
int main(void)
{
bt_enable(NULL);
if (bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad), NULL, 0)) {
return 0;
}
while (1) {
k_sleep(K_SECONDS(1)); /* la radio tourne en ISR/threads */
}
}
In prj.conf: CONFIG_BT=y and CONFIG_BT_DEVICE_NAME="mon-dk". Build and flash via the J-Link OB (cable on J2):
west build -b nrf52833dk/nrf52833 mon-projet && west flash
Step 3 — See the signal on your phone
Install nRF Connect for Mobile (Nordic, Android/iOS): scan → mon-dk appears → connect. For a complete scenario with GATT service + notifications, the peripheral_uart sample (Nordic UART Service) is the next step; upstream Zephyr Bluetooth samples compile as-is on nrf52833dk.
Radio options that open doors
The nRF52833 is not a generic BLE chip — Product Spec v1.7 documents:
- 4 LE data rates: 2 Mbps, 1 Mbps, 500 kbps, and 125 kbps (Long Range, sensitivity −103 dBm);
- Direction Finding AoA/AoD (BLE 5.1+ radiogoniometry);
- multiprotocol: the same radio also supports Bluetooth mesh, IEEE 802.15.4 (Thread/Zigbee), and proprietary 2.4 GHz;
- transmit power −20 to +8 dBm in 4 dB steps — on the board side, the kit's PCB antenna is there; for conducted measurements, see the RF connector tutorial.
Pitfalls
- The J-Link OB virtual COM port (SoC pins P0.05-P0.08) is used for logs: your terminal must assert DTR, otherwise there is no output.
- Do not confuse this with old nRF5 SDK + SoftDevice S140 samples: in NCS/Zephyr, the BLE controller is integrated into the build; there is no SoftDevice to merge.
- A sample built for
pca10056does not map the buttons/LEDs of the PCA10100: stick to the correct target.
Other tutorials for this board
- Premier blinky Zephyr sur le nRF52833-DK
- Flasher un .hex sans rien installer : MSD et nRF Connect Programmer
- CircuitPython sur le kit Nordic : le prototypage sans C
- Projet firmware complet avec PlatformIO et la sonde J-Link embarquée
- Utiliser le DK comme sonde J-Link pour une cible externe
- Réseau Thread / 802.15.4 avec OpenThread sur le nRF52833