Embedded Firmware Engineer (ESP32 / ReSpeaker Lite / IoT Audio)

Posted 4 weeks ago

Only freelancers located in the U.S. may apply.U.S. located freelancers only

Summary

Embedded Firmware Engineer (ESP32 / ReSpeaker Lite / Voice Assistant / IoT Audio) IMPORTANT The hardware platform has already been selected and purchased. The objective is to build a working prototype using these exact components whenever possible. We are NOT looking to redesign the hardware stack. Existing Hardware (Already Purchased) * Seeed ReSpeaker Lite Voice Assistant Kit (XIAO ESP32S3) * Seeed Mono Enclosed Speaker (4Ω 5W) * Grove RGB LED Ring (24 WS2813 Mini) * Four illuminated 30mm push buttons * Breadboards and jumper wires * USB-C power **Please assume these components are fixed unless a technical limitation is discovered.** --- MOST IMPORTANT REQUIREMENT THIS IS AN AMBIENT VOICE COMPANION. THE ABILITY FOR A USER TO SIMPLY SAY: "HEY APP NAME" FROM ACROSS THE ROOM AND HAVE THE DEVICE WAKE UP, LISTEN, AND RESPOND IS A CORE REQUIREMENT. **This is NOT a future enhancement and NOT optional.** If you do not have experience implementing wake-word systems, microphone arrays, voice assistants, or audio pipelines, this project is probably not a good fit. The voice experience is the entire point of the product. Buttons are intended as secondary interaction methods and accessibility aids, not the primary experience. --- Objective Build a functional tabletop prototype capable of: * Wi-Fi connectivity * LED ring status states * Four-button interaction * Speaker playback * Microphone capture * Voice journaling * Cloud API communication * Reliable wake-word activation Examples: "Hey App Name" "Hey App Name, I'd like to tell you something." "Hey App Name, what do I need to know?" "Hey App Name, journal this." "Hey App Name, read my reminder." --- Prototype Behaviors Wake Word Upon hearing: "HEY APP NAME" The device should: 1. Wake immediately. 2. Change LED ring to listening mode. 3. Capture speech. 4. Send audio to cloud services. 5. Receive response. 6. Play spoken response through speaker. 7. Return to idle. --- Buttons Buttons are secondary interaction methods. Green button: Action back to app Yellow button: Action back to app Blue button: Action back to app White button: Action back to app --- LED Ring States * Idle * Listening * Processing * Success * Message waiting * Reminder * Error * Microphone muted --- Firmware Preferences Strong preference for: * PlatformIO * Arduino framework * Modular architecture * Expandable codebase * OTA update capability --- Strong Preference For Experience With * ESP32 * ESP32-S3 * ReSpeaker Lite * I2S audio * Microphone arrays * Voice assistant products * Wake-word engines * Home Assistant Voice * ESP-SR * Porcupine by Picovoice * MQTT * OTA firmware * Audio streaming * Cloud APIs --- Deliverables 1. Wiring diagram. 2. Complete source code. 3. Setup instructions. 4. Working prototype video. 5. Documentation. 6. Recommendations for future improvements. --- Milestone 1 * Device powers on. * Connects to Wi-Fi. * LED ring works. * Buttons work. * Speaker output works. * Microphone capture works. Milestone 2 USER CAN SAY: "HEY APP NAME" FROM ACROSS THE ROOM AND THE DEVICE: * Wakes reliably. * Enters listening mode. * Changes LED ring state. * Captures audio. * Sends audio to cloud. * Receives response. * Speaks response back to the user. * Returns to idle. **This wake-word interaction is considered a successful prototype requirement, not a stretch goal.** --- Please Provide * Examples of ESP32 projects. * Examples involving microphones and audio. * Examples involving wake-word systems. * Experience with ReSpeaker Lite or I2S audio. * Preferred framework (PlatformIO / Arduino / ESP-IDF) and why. * Fixed-price estimate. * Estimated timeline. Long-term work is available for the right person as this prototype evolves into production hardware.

  • Less than 30 hrs/week
    Hourly
  • 1-3 months
    Duration
  • Intermediate
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
ESP32
Arduino
C++
WiFi
Embedded System
Activity on this job
  • Proposals:20 to 50
  • Last viewed by client:4 weeks ago
  • Interviewing:
    1
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since Dec 3, 2010
  • United States
    Pittsburgh7:12 AM
  • $17K total spent
    4 hires, 2 active
  • 5 hours

Explore similar jobs on Upwork

ESP32
Kotlin
Bluetooth
Android
Firmware Programming
Embedded C
Microcontroller Programming
Firmware Programming
C

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