ESP32-C6 Firmware Recovery and Debugging

Posted 4 days ago

Worldwide

Summary

## 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
  • Expert
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type
Skills and Expertise
Mandatory skills
Embedded C
Reverse Engineering
Nice-to-have skills
Microcontroller Programming
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
Member since Jul 27, 2023
  • Switzerland
    Feuerthalen9:42 AM
  • $15K total spent
    12 hires, 2 active
  • Retail & Consumer Goods
    Small company (2-9 people)

Explore similar jobs on Upwork

C++
C
Firmware Programming
Driver Development
Embedded C
Software Debugging
Kernel Role ExperienceHourly‐ Posted 2 weeks ago
Human Resource Management
SAP
Medical Billing & Coding
Customer Service

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers 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

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo