I'm looking for developer to write a software for STM32 (BluePill) to:
1. scan 5 navigation buttons (up, down, left, right, ok),
3. scan RPM signal from fans and calculate RPM
4. read voltage on 4 analog thermistors,
5. control PWM for 5 fans
6. display simple information on LCD.
7. implement simple USB data transfer between STM32 and PC (data for LCD)
8. implement simple UART data transfer between STM32 and PC (same as 7.)
The software should be compilable by PlatformIO with resouce efficient framework.
The structure of the software must be event driven or any other easy readable structured and extensible.
All the activities must be non-blocking (buttons must react in 100ms at least).
All fixed parameters must be defined only once (no definition duplicity) and they should be defined in single header file.
LCD is supported by Adafruit_ST7789 library (I can provide a simple working example).
STM32 is connected to PC using 2 interfaces: USB and UART. Both must work. PC will transfer information to be displayed on LCD like IP addresses, serial number, registration code ... those are the information to only print on LCD nothing else. PC can tell STM32 about % of FAN speed and real actual time so STM32 can setup correct internal time clock. For this purpose the developer should define a simple protocol. USB should be a device role. PC will be USB host. We require also working example to send data from Linux to STM32 over USB.
There are two shift registers 74HC165 to connect buttons and RPM signal from fans. Usage is really primitive but I can also provide simple example. But I believe the developer should know how to read the inputs.
Right now we don't need UP, DOWN, OK buttons but we will want to extend the project if it will be successfull.
2x 75HC165 (Parallel-to-Serial):
PA4: TH0 voltage divider 10K+MF52
PC14: XTAL 32.768K
PC15: XTAL 32.768K
PA11: USB to PC
PA12: USB to PC
PA15: PWR LED (should be always HIGH)
PA9: UART to PC
PA10: UART to PC