Embedded Firmware Engineer (ESP32 / ReSpeaker Lite / IoT Audio)
Only freelancers located in the U.S. may apply.U.S. located freelancers only
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/weekHourly
- 1-3 monthsDuration
- IntermediateExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
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
- United StatesPittsburgh7:12 AM
- $17K total spent4 hires, 2 active
- 5 hours
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