ESP32-C6 Firmware Recovery and Debugging
Worldwide
## ESP32-C6 / ESP-IDF Firmware Recovery and TLS Crash Debugging We are looking for an experienced ESP32-C6 and ESP-IDF developer to take over and stabilize an existing firmware project. The firmware is largely implemented and available in a private GitHub repository. The previous developer stopped responding shortly before project completion. We therefore need an engineer who can first reproduce the existing build, then diagnose and fix a crash occurring during TLS handshakes. ## Hardware architecture The system consists of: * ESP32-C6 Wi-Fi coprocessor * NXP/Freescale i.MX233 host processor * UART0 between i.MX233 and ESP32-C6 for flashing and debug output * UART1 on ESP32-C6 GPIO6/GPIO7 for AT-style commands and data transfer * UART communication at up to 3 Mbps * SD card connected to the ESP32-C6 through SPI * SD card shared between ESP32-C6 and i.MX233 through a TS3A27518E hardware switch * Custom target hardware is available for testing. You can, however, start working directly with a standard ESP32-C6 Dev Kit1-C. The SD-card switching and access from both processors are already working. ## Existing firmware functionality The firmware provides or is intended to provide: * Wi-Fi connectivity * AT-style command interface * HTTP and HTTPS GET requests * HTTP and HTTPS POST requests * curl-like commands * cookie handling * data transfer through UART * direct downloading of files to the SD card * switching SD-card ownership between ESP32-C6 and i.MX233 ## Current problem The latest available firmware binary still crashes during some TLS handshakes. The previous developer indicated that she was working on this issue, but has not responded for approximately six weeks. We have: * access to the existing GitHub repository * previous firmware binaries * working target hardware * a working custom flashing implementation * serial debug access ## Required work ### Milestone 1: Reproduce the build * Inspect the existing repository * Identify the exact ESP-IDF version and dependencies * Build the project successfully on a clean environment * Generate all required binary files * Document the build and flash procedure * Commit all missing build and configuration files to GitHub ### Milestone 2: Diagnose and fix the TLS crash * Reproduce the crash on target hardware * Capture and decode the full ESP32 crash backtrace * Identify the exact root cause * Check for stack overflow, heap exhaustion, heap fragmentation, invalid pointers, watchdog issues and concurrency problems * Provide a written diagnosis * Implement and validate the fix for TLS-handshake crash * Verify HTTPS GET and POST requests against multiple servers * Verify TLS certificate validation * Generate / upload TLS certificates (function existing already; to be checked) * Test repeated connections and downloads * Check for memory leaks and progressive heap loss * Test direct downloads to the SD card ### Milestone 3: Documentation and handover * Update the GitHub repository * Provide a complete README * Document the ESP-IDF version and toolchain * Document all firmware commands * Document flash addresses and partition layout * Document known limitations * Provide a reproducible test procedure ## Acceptance criteria The project must be reproducibly buildable by us from the GitHub repository on a clean development environment. Your help / guidance might be needed in order to make us do this. Binary-only delivery is not acceptable. All source code, configuration files, component dependencies, build scripts and documentation must be committed to the supplied GitHub repository before milestone approval. The final firmware must complete repeated HTTPS connections and file downloads without crashes, watchdog resets or progressive memory loss. ## Required experience Please apply only if you have strong practical experience with: * ESP32-C6 * ESP-IDF * FreeRTOS * esp_http_client * mbedTLS * decoding ESP32 Guru Meditation errors and backtraces * stack and heap debugging * FATFS and SD cards over SPI * high-speed UART communication * custom AT command interfaces or ESP-AT extensions In your application, please briefly explain how you would investigate an ESP32-C6 crash occurring during `esp_http_client_perform()` while establishing TLS.
$3,500.00
Fixed-price- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:yesterday
- Hires:1
- Interviewing:1
- Invites sent:0
- Unanswered invites:0
About the client
- SwitzerlandFeuerthalen9:42 AM
- $15K total spent12 hires, 2 active
- Retail & Consumer GoodsSmall company (2-9 people)
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by