A comprehensive Zephyr RTOS development project for the STM32U585 IoT Discovery Kit (B-U585I-IOT02A), featuring sensor integration, wireless connectivity, and embedded systems development examples.
This project demonstrates modern embedded development on the STM32U585 microcontroller using Zephyr RTOS, with a focus on:
- Comprehensive sensor integration - Environmental, motion, audio, and distance sensing
- Wireless connectivity - Wi-Fi networking with EMW3080 module
- Modern C++ sensor abstractions - Object-oriented sensor driver design
- Custom driver development - STM32U5-specific audio (MDF/ADF) and sensor drivers
- Real-time data processing - Continuous sensor monitoring and data fusion
βββ hello_world/ # Basic Zephyr "Hello World" example
βββ sensors/ # Advanced sensor integration project (C++)
βββ wifi/ # Wi-Fi connectivity with EMW3080 module
βββ zephyr_env.sh # Zephyr development environment setup
βββ README.md # This file
STM32U585 IoT Discovery Kit (B-U585I-IOT02A)
- MCU: STM32U585AII6Q (Arm Cortex-M33 with TrustZone)
- Memory: 2 MB Flash, 786 KB SRAM
- Power: Integrated SMPS for ultra-low power operation
- Debug: STLINK-V3E with real-time logging
| Component | Status | Implementation |
|---|---|---|
| HTS221 (Humidity/Temperature) | β Working | Full IΒ²C driver with continuous sampling |
| IIS2MDC (Magnetometer) | β Working | 3-axis magnetic field measurements |
| ISM330DHCX (IMU) | β Working | 6-axis accelerometer + gyroscope |
| LPS22HH (Pressure) | β Working | Barometric pressure + temperature |
| VEML6030/7700 (Ambient Light) | β Working | Ambient light sensing with lux calculations |
| VL53L5CX (Time-of-Flight) | Hardware detection (ULD firmware pending) | |
| MP23DB01HPTR (PDM Mics) | Custom STM32U5 MDF driver development | |
| EMW3080 (Wi-Fi) | π§ Under Development | 802.11 b/g/n connectivity via SPI |
| STM32WB5MMG (Bluetooth LE) | β Future | BLE 5.0 support planned |
- Zephyr SDK (v0.17.4+) with ARM toolchain
- West build tool for Zephyr
- STM32CubeProgrammer for flashing
- macOS development environment (project configured for macOS)
# Source the Zephyr environment
source zephyr_env.sh
# Verify toolchain installation
arm-zephyr-eabi-gcc --version
west --versioncd hello_world
west build -b b_u585i_iot02a -p always
west flashcd sensors
west build -b b_u585i_iot02a -p always
west flashcd wifi
west build -b b_u585i_iot02a -p always
west flashLanguage: C
Purpose: Basic Zephyr introduction and board verification
Simple "Hello World" application that prints system information every second. Perfect for:
- Verifying toolchain setup
- Testing board connectivity
- Learning basic Zephyr development
Language: C++
Purpose: Comprehensive sensor data acquisition and processing
Advanced sensor monitoring application featuring:
- Real-time sensor fusion - Continuous monitoring of all operational sensors
- Object-oriented design - Modern C++ sensor class abstractions
- Custom drivers - STM32U5-specific MDF/ADF audio interface
- Data processing - RMS audio level calculation, motion detection
- Sensor status reporting - Detailed logging and error handling
Key Features:
- Environmental monitoring (temperature, humidity, pressure, light)
- Motion sensing (3-axis magnetometer, 6-axis IMU)
- Audio capture (PDM microphones with RMS calculation)
- Distance measurement (Time-of-Flight sensor)
Language: C
Purpose: Network connectivity with EMW3080 Wi-Fi module
Wi-Fi networking application providing:
- Station mode support - Connect to existing Wi-Fi networks
- Network scanning - Discover available access points
- Shell interface - Interactive Wi-Fi and network commands
- DHCP/DNS support - Automatic network configuration
- Protocol testing - SPI communication and MIPC protocol validation
- STM32U5 MDF/ADF driver for PDM microphones
- VL53L5CX Time-of-Flight sensor integration
- EMW3080 Wi-Fi module with SPI interface
- C++17 sensor abstractions with consistent interfaces
- Zephyr device tree configuration
- CMake build system with modular driver organization
- Comprehensive logging with configurable log levels
- Real-time sensor data via UART console
- STLINK-V3E debugging with GDB support
- West flash integration for rapid development cycles
- β Core sensor integration complete
- π§ PDM microphone driver optimization
- π§ Wi-Fi connectivity stabilization
- π VL53L5CX ULD firmware integration
- π Bluetooth LE (STM32WB5MMG) implementation
- π STSAFE-A110 secure element integration
- π Sensor data logging to external memory
- π Over-the-air (OTA) firmware updates
- π Cloud connectivity and IoT integration
Development Environment:
- Zephyr RTOS v4.2.0+
- ARM Cortex-M33 toolchain
- West build system
- macOS-optimized development setup
Communication Interfaces:
- IΒ²C2 (sensors), SPI2 (Wi-Fi), UART4 (Bluetooth)
- MDF/ADF (audio), OCTOSPI (external memory)
- USB Type-C (debug/programming)
Power Management:
- Ultra-low power design with SMPS
- Configurable sensor sampling rates
- Sleep mode support (future)
SPDX-License-Identifier: Apache-2.0
Target Audience: Embedded systems developers, IoT engineers, STM32 enthusiasts, and Zephyr RTOS learners looking for comprehensive sensor integration and wireless connectivity examples.