STM32 Firmware Development for Electric Toothbrush
Budget: £20 – £250 GBP
I'm seeking an embedded systems programmer to develop firmware for an electric toothbrush project using an STM32 Nucleo board. The toothbrush features an OLED display (128x64) and several tactile buttons to enhance user interaction. Upon powering on, the OLED should display a 2-minute timer that remains active, even when the user toggles between speed modes. Control buttons include a power switch to turn the toothbrush on and off, a motor control switch, a speed mode switch (to toggle between three speed settings: Low, Medium, High), and a motor rotation button that reverses motor direction when pressed. Optional development includes an OLED menu interface, allowing intuitive speed adjustments alongside the 2-minute timer display. Firmware should be written in C/C++ for STM32 microcontrollers, requiring skills in PWM for speed control and GPIO for button input handling, as well as OLED display interfacing. We’re looking for clean, maintainable code across all features, with potential user experience enhancements if you can implement a menu interface. If you’re experienced with STM32 and can fulfil these requirements, I'd love to discuss further!
The 2-minute timer starts automatically when the power switch is turned on. Please include a feature to display the battery status on the OLED. Display the battery status as a percentage on the OLED. The toothbrush uses a rechargeable battery. Button presses should continue the 2-minute timer. The motor speed adjustments should be implemented using PWM only. An additional button will be used to trigger the OLED menu interface. Communication between components should use the I2C protocol. The OLED menu interface should incorporate user-friendly speed adjustments to enhance user interaction. The battery status should be displayed in 5% increments.
The 2-minute timer starts automatically when the power switch is turned on. Please include a feature to display the battery status on the OLED. Display the battery status as a percentage on the OLED. The toothbrush uses a rechargeable battery. Button presses should continue the 2-minute timer. The motor speed adjustments should be implemented using PWM only. An additional button will be used to trigger the OLED menu interface. Communication between components should use the I2C protocol. The OLED menu interface should incorporate user-friendly speed adjustments to enhance user interaction. The battery status should be displayed in 5% increments.