STM32F030CCT6 Relay Firmware

Job ID: 40425004

Budget: ₹1,500 – ₹12,500 INR

I have a board built around the STM32F030CCT6. It drives 13 relays (twelve plus one spare) from 14 physical switches. Most switches are simple momentary controls—the assigned relay must stay energised only while the switch is held and drop immediately on release. Between one and five of the switches, however, need to be configurable so I can later change how they behave without recompiling the whole project. A small table in flash or EEPROM that I can update over UART or SWD is fine; I just need a clean way to map those few switches to any of the relays or to invert their logic if required.

Scope of work
• Write compact, well-commented C firmware for the STM32F030CCT6 using HAL or bare-metal register access—whichever keeps the code clear and portable.
• Generate the basic pinout in STM32CubeMX (or equivalent) so I can visualise and tweak GPIO assignments.
• Implement the momentary control logic for all non-configurable switches.
• Add a lightweight configuration routine for up to five switches, stored in non-volatile memory and loaded at boot. No fancy GUI is needed; a simple serial command set is enough.
• Debounce inputs in software; typical press times are short, so 10–20 ms will do.
• Deliver the full project files and buildable source code, ready for Keil, STM32CubeIDE, or Makefile compilation.

Acceptance
The firmware should compile cleanly, run without watchdog resets, and switch each relay exactly as described. I’ll test by cycling every switch 500 times; no relay should chatter or miss an activation. Once it passes, the job is complete and I release payment. I need Source code also.