This repository contains a comprehensive collection of nRF Connect SDK demonstrations and learning projects, covering various aspects of Nordic Semiconductor nRF series development.
This workspace is organized into three main categories:
- demos1/: Basic Zephyr RTOS feature demonstrations
- demos2/: Advanced features and protocols
| Project | Description | Key Features |
|---|---|---|
button_controller/ |
Button input handling | GPIO input, interrupt handling |
led_PWM/ |
PWM LED control | PWM API, LED brightness control |
littlefs/ |
LittleFS file system | File operations, persistent storage |
nvs/ |
Non-Volatile Storage | Key-value storage, configuration persistence |
pwr_reg/ |
Power Regulator Control | Power management, regulator on/off with LED signaling |
| Project | Description | Key Features |
|---|---|---|
cdc_acm_demo/ |
USB CDC ACM Communication | USB CDC, serial communication |
deep_sleep_demo/ |
Deep Sleep Implementation | Power optimization, sleep modes |
interrupts/ |
Interrupt Handling | GPIO interrupts, interrupt service routines |
MCUboot/ |
MCUboot Bootloader | Secure bootloader, firmware updates |
rtc_demo/ |
Real-Time Clock | RTC API, time keeping |
settings_demo/ |
Settings Management | Configuration storage and retrieval |
smp_server_demo/ |
SMP Server Protocol | Device management, remote configuration |
state_demo/ |
State Machine | State management patterns |
statistics_mng_demo/ |
Statistics Management | System monitoring, data collection |
watchdog/ |
Watchdog Timer | System reliability, watchdog implementation |
- nRF Connect SDK: Latest version
- nRF Connect for Desktop: For device programming and debugging
- Hardware: nRF52840 Development Kit (or compatible nRF series board)
- VS Code: With nRF Connect extension pack
-
Setup Development Environment
# Install nRF Connect SDK following Nordic's official guide # https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/installation.html
-
Clone Repository
git clone <repository-url> cd nrf_projects
-
Build a Project
# Navigate to any project directory cd demos1/button_controller # Build the project west build -b nrf52840dk_nrf52840 # Flash to device west flash
Each project contains standard Zephyr configuration files:
prj.conf: Main application configurationCMakeLists.txt: Build system configurationKconfig: Custom configuration options (where applicable)boards/: Hardware-specific configurations*.overlay: Device tree overlays for hardware customization
- ✅ GPIO Control (buttons, LEDs)
- ✅ PWM (Pulse Width Modulation)
- ✅ File Systems (LittleFS)
- ✅ Non-Volatile Storage (NVS)
- ✅ Power Management
- ✅ USB Communication (CDC ACM)
- ✅ Bluetooth Low Energy
- ✅ MCUboot Secure Bootloader
- ✅ Sleep Modes and Power Optimization
- ✅ Real-Time Clock
- ✅ System Management Protocol (SMP)
- ✅ Interrupt Handling
- ✅ Watchdog Timer
- ✅ State Machines
- ✅ Statistics Management
Projects are designed for the nRF52840 Development Kit
Refer to notes.txt for detailed learning notes and project progression. Key insights include:
- Configuration file hierarchy and usage
- Hardware abstraction layer concepts
- Driver implementation patterns
- Power management strategies
# Build for nRF52840 DK
west build -b nrf52840dk_nrf52840
# Clean build
west build -b nrf52840dk_nrf52840 --pristine
# Flash to device
west flash
# Monitor serial output
west serial-termSome projects (like MCUboot) require multi-image builds:
west build -b nrf52840dk_nrf52840 --sysbuild- Build Errors: Ensure nRF Connect SDK is properly installed and
westis in PATH - Flash Errors: Check device connection and drivers
- Configuration Issues: Verify board-specific overlay files
# Check west installation
west --version
# List available boards
west boards
# Clean workspace
west clean
# Update dependencies
west updateWhen adding new projects:
- Follow the existing directory structure
- Include proper configuration files
- Add documentation for complex features
- Test on target hardware
This project is for educational and development purposes. Please refer to Nordic Semiconductor's licensing terms for commercial use.
This repository represents hands-on learning with nRF Connect SDK, covering fundamental to advanced embedded systems concepts.