connected watch — nrf5340 & zephyr rtos
Design and implementation of a connected watch on nRF5340 with Zephyr RTOS, featuring BLE communication, I2C sensor integration, and an LVGL touch interface.
system_log // connected_watch
This Master 1 project aimed to build a functional connected watch from the ground up, integrating hardware and software components into a coherent embedded system. Inspired by the open-source ZSWatch project.
mission_scope
The core challenge was developing a real-time application on the nRF5340 microcontroller using Zephyr RTOS. The device had to collect sensor data, display it on a touchscreen GUI, and communicate via Bluetooth Low Energy.
features_implemented
multi_screen_gui
Touch-enabled graphical interface designed with Squareline Studio and rendered by LVGL. Screens include: watch face, sensor dashboard, pedometer, compass, and stopwatch.
sensor_integration
I2C sensor management via ST IKS01A3 shield:
- LSM6DSO (6-axis IMU) for pedometer and motion tracking
- LIS2MDL (magnetometer) for compass functionality
- HTS221 (temperature + humidity)
time_management
Persistent timekeeping through external RTC (Micro Crystal RV-8263-C8) with stopwatch function and date tracking across reboots.
ble_connectivity
GATT services for sensor data streaming to mobile devices — standard ESS for temperature/humidity, custom service for IMU data. Debugged with nRF Connect for Mobile.
hardware_stack
| Component | Part |
|---|---|
| MCU | Nordic nRF5340 |
| Sensors | ST IKS01A3 Shield |
| Display | Adafruit 2.8” TFT Touch Shield v2 |
| RTC | Micro Crystal RV-8263-C8 |
lessons_learned
Zephyr’s device tree model required careful pin mapping and driver configuration. The BLE stack on nRF Connect SDK provided robust GATT abstractions but added significant binary size — optimizing for flash budget was a key constraint.
Repository: github.com/M0x3m/Montre_Connectee_Projet