Optimize ESP32 Automotive Ignition System multispark Firmware

via Freelancer ·

Budget / SalaryC$30–250
TypeFreelance project
LocationRemote
Posted2 hours ago
I have a working but untidy firmware that converts a single 3.3 V ignition trigger from the vehicle’s PCM into a precise, doubled-width pulse that drives a FET-controlled dual-spark coil. The hardware is a CYD-branded ESP32 board, and the present code relies on a near-linear lookup chart to decide dwell and timing. It functions, yet the interrupt handling and pulse generation introduce more latency than I’m comfortable with, and nothing is saved once the unit powers down except the programmed defaults.

Here’s what I need from the rewrite:

• Tighter timing control. The priority is to shave latency and jitter to the minimum the ESP32 can offer while still keeping the logic straightforward to maintain.
• Persistent tuning data. Two items—ignition timing adjustments and pulse-duration settings—must survive resets by living in the ESP32’s NVS/EEPROM as simple key-value pairs. Stubs for future serial or BLE tuning would be a plus.
• Clean, well-commented code targeting ESP-IDF (Arduino layer acceptable if it doesn’t compromise latency) and a concise README explaining how to build, flash, and modify the stored parameters.

having a working flow menu system would be nice, but if it could allow the OTA firmware updates, that would be even better. but i think with LVGL, there is not enough room.

Deliverables
1. Source in a Git repository with clear commit history.
2. Compiled binary and flashing instructions.
3. Brief latency report comparing old vs. new firmware.

Acceptance Criteria
At a 5 kHz input the doubled output pulse must show
c programming electronics microcontroller electrical engineering arduino software development git embedded systems signal processing firmware development
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.