

The B-U585I-IOT02A is a development board manufactured by STMicroelectronics, designed to accelerate the development of IoT (Internet of Things) applications. It is built around the STM32U585AI microcontroller, which features an Arm® Cortex®-M33 core with TrustZone® technology for enhanced security. The board integrates a variety of sensors, connectivity modules, and interfaces, making it an ideal platform for prototyping smart devices and IoT solutions.








| Feature | Specification |
|---|---|
| Microcontroller | STM32U585AI (Arm® Cortex®-M33, 160 MHz, TrustZone® support) |
| Flash Memory | 2 MB internal Flash |
| RAM | 786 KB internal SRAM |
| Connectivity | Wi-Fi (ISM43362-M3G-L44), Bluetooth® Low Energy (v5.0), NFC |
| Sensors | Temperature, humidity, magnetometer, accelerometer, gyroscope, pressure |
| Power Supply | USB Type-C (5V) or external power supply |
| Interfaces | USB, UART, I2C, SPI, ADC, GPIO |
| Operating Voltage | 3.3V (I/O) |
| Dimensions | 95 mm x 50 mm |
| Development Environment | Compatible with STM32CubeIDE, Arduino IDE, and other IDEs |
The B-U585I-IOT02A board provides multiple headers and connectors for interfacing with external components. Below is a summary of the key pins and their functions:
| Pin Number | Pin Name | Function | Voltage Level |
|---|---|---|---|
| 1 | 3V3 | 3.3V Power Output | 3.3V |
| 2 | GND | Ground | - |
| 3 | PA0 | GPIO / ADC Input | 3.3V |
| 4 | PA1 | GPIO / PWM Output | 3.3V |
| 5 | PB6 | I2C1_SCL (Clock Line) | 3.3V |
| 6 | PB7 | I2C1_SDA (Data Line) | 3.3V |
| 7 | PC10 | UART4_TX (Transmit) | 3.3V |
| 8 | PC11 | UART4_RX (Receive) | 3.3V |
| Sensor | Interface | Pin Names | Description |
|---|---|---|---|
| Temperature | I2C | PB6 (SCL), PB7 (SDA) | Measures ambient temperature |
| Humidity | I2C | PB6 (SCL), PB7 (SDA) | Measures relative humidity |
| Magnetometer | I2C | PB6 (SCL), PB7 (SDA) | Detects magnetic fields |
| Accelerometer | I2C | PB6 (SCL), PB7 (SDA) | Measures acceleration in 3 axes |
| Gyroscope | I2C | PB6 (SCL), PB7 (SDA) | Measures angular velocity |
| Pressure | I2C | PB6 (SCL), PB7 (SDA) | Measures atmospheric pressure |
Powering the Board:
Programming the Board:
Interfacing with Sensors:
Using Connectivity Features:
Below is an example of how to read temperature and humidity data from the onboard sensor using the Arduino IDE:
#include <Wire.h>
#include <HTS221Sensor.h> // Include the library for the HTS221 sensor
// Define I2C address for the HTS221 sensor
#define HTS221_I2C_ADDRESS 0x5F
// Create an instance of the HTS221 sensor
HTS221Sensor hts221(&Wire);
void setup() {
Serial.begin(9600); // Initialize serial communication
Wire.begin(); // Initialize I2C communication
// Initialize the HTS221 sensor
if (hts221.begin(HTS221_I2C_ADDRESS)) {
Serial.println("HTS221 sensor initialized successfully.");
} else {
Serial.println("Failed to initialize HTS221 sensor.");
while (1); // Halt execution if initialization fails
}
}
void loop() {
float temperature, humidity;
// Read temperature and humidity from the sensor
if (hts221.readTemperature(&temperature) && hts221.readHumidity(&humidity)) {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
} else {
Serial.println("Failed to read data from HTS221 sensor.");
}
delay(1000); // Wait for 1 second before the next reading
}
Board Not Detected by IDE:
Sensor Data Not Reading:
Wi-Fi or Bluetooth® Not Working:
Power Issues: