Custom STM32 Firmware Development

Job ID: 40115909

Budget: $1,500 – $3,000 USD

I am building a custom STM32-based embedded device: an electronic level with an integrated timer, OLED display, RGB LEDs, buzzer, and battery power.
The hardware design is complete. I am now looking for an experienced embedded developer to bring the device to life with clean, reliable, and power-efficient firmware.

This project sits between proof-of-concept and production: the functionality is well defined, but the implementation should be robust, modular, and easy to extend.

Key Hardware:
MCU: STM32L496RET6
IMU: ICM-20948
Display: OLED 128×32 (I2C, SSD1306-compatible)
User input: 3 × push buttons
Indicators: 3 × RGB LED
Buzzer
Power: Li-Po battery

Scope

Intermediate project with meaningful customization. Emphasis on clean architecture, readability, and maintainability. No need for extreme edge cases or certification-level complexity

Customization focus
1. User Interface (OLED + buttons)
OLED-based UI
Menu navigation via buttons
Menu options:
- screen rotation (0° / 90° / 180° / 270°)
- level sensitivity configuration
- timer duration setup
- buzzer signaling configuration
- power-saving settings

2. Sensor integration (IMU)
IMU initialization and configuration
Angle calculation from accelerometer/gyro
Optional filtering / smoothing
Angle-based RGB LED indication (different colors for defined ranges)

3. Timer functionality
Countdown timer displayed on OLED
Audible feedback via buzzer:
configurable warning thresholds
end-of-timer signal

4. Low-power operation (important)
Battery-powered design
Sleep modes for: MCU, OLED, IMU, LEDs
Wake-up via buttons or movement - Strong focus on minimizing current consumption

Preferred:
STM32CubeMX / STM32CubeIDE - C language

Deliverables
Complete source code and CubeIDE project
Clean build with no warnings
Short README describing:
firmware architecture
menu extension
sensor and timer configuration
power-management strategy