What are the responsibilities and job description for the Embedded Systems Engineer – Consumer Appliance Retrofit (RS-485, AVR, PCB Revision) position at MagikFlame?
About the Project
We manufacture a premium consumer electronics product (electric fireplace system) sold direct-to-consumer in the US. A core internal subassembly currently uses Bluetooth Low Energy (BLE) for communication between a Raspberry Pi 3 B and a custom AVR-based microcontroller board. This wireless link is unreliable in production and generates significant customer support load and returns.
We are replacing BLE with wired RS-485 communication and adding sensor feedback to create a closed-loop control system. The system must verify its own state via sensors rather than assuming commands were received. This is a retrofit to an existing shipping product — not a ground-up design.
This is a shipped consumer product installed in thousands of homes. Reliability and fault tolerance are critical requirements. That said, this is a collaborative, technically engaged environment. You will work directly with the founder and have real input into architectural decisions. This is a focused reliability project with a clear scope and defined milestones — not a chaotic feature scramble. And this is just the beginning: we have a multi-phase product roadmap, and the right engineer will have the opportunity to shape the product across future phases.
What You Will Do
• Revise an existing custom PCB (currently in EagleCAD) to add an RS-485 transceiver, sensor input conditioning circuits (optical sensor current transformer), and updated connectors
• Implement RS-485 half-duplex communication protocol between the Raspberry Pi 3 B (Linux, hardware UART) and an AVR-class microcontroller, replacing the existing BLE link entirely
• Integrate an optical sensor (phototransistor) to detect the ON/OFF state of pulsating/animating LEDs inside the product, including signal conditioning, rolling-average filtering, threshold logic, and per-unit calibration stored in EEPROM
• Integrate a split-core current transformer to classify AC load states (off / low draw / high draw) on a 110V heater circuit — galvanically isolated, state classification only, no precision measurement required
• Write firmware implementing: command parsing with CRC-8 integrity checking, ACK responses carrying both desired and sensed state, periodic heartbeat telemetry at 2 Hz, retry/convergence logic for IR-based control of a third-party module, self-test sequencing, and fault detection with a defined fault taxonomy
• Collaborate on Raspberry Pi–side software updates to replace BLE with RS-485 serial and implement an authoritative state model where the UI reflects confirmed sensor state — the UI must never display a state that contradicts physical reality
• Solve physical integration challenges: signal wire routing within a very tight enclosure near a 1500W heater, sensor placement and mounting, connector selection, and harness design for repeatable production assembly
• Stress-test prototypes (rapid command cycling, power interruptions, thermal soak, intentional fault injection, IR obstruction) and prepare the design for production with documented assembly procedures and a factory test process
Technical Environment
• Controller: Raspberry Pi 3 B running Linux (Raspbian-based), with a 2.8” PiTFT capacitive touchscreen occupying SPI, I2C, and several GPIO pins. USB ports are inaccessible after assembly. Available UART pins (GPIO 14/15) are confirmed free.
• Target MCU: AVR/Arduino-class microcontroller on existing custom PCB (the “log board”)
• PCB tool: EagleCAD (existing schematic and board layout files provided)
• Communication: RS-485 half-duplex, point-to-point, replacing BLE
• Electrical environment: 110V/15A fan-forced heater (~1500W) cycling on/off within inches of signal wiring. This is a real EMI environment, not a bench project.
• Sensors: Phototransistor or photodiode (LED state detection), split-core current transformer (AC load classification)
Required Experience
• You have designed or revised a PCB and written firmware for the same board on at least one product that shipped to real customers — not a personal project, class assignment, or development kit demo
• You are proficient with EagleCAD or KiCad for schematic capture and board layout
• You have implemented serial communication protocols (RS-485, RS-232, UART, or similar) in embedded firmware, including framing, error checking (CRC), and acknowledgment/retry logic
• You have integrated analog sensors into a microcontroller system — reading, conditioning, filtering, and thresholding real-world signals in a production environment
• You understand EMI considerations in mixed-signal environments near power electronics (heaters, motors, relays, triacs) and can make informed decisions about cable routing, shielding, filtering, and transceiver selection
• You write clean, maintainable embedded C or C with proper state machine structure, hardware watchdog usage, brownout detection, and defensive fault handling
• You are comfortable working independently with physical hardware at your own bench, debugging with an oscilloscope and logic analyzer, and iterating on real prototypes
Nice to Have (Not Required)
• Experience with Raspberry Pi GPIO, UART configuration (PL011 vs mini-UART), and Linux serial interfaces
• Experience with consumer appliances, UL/ETL safety considerations, or products involving heating elements
• Experience preparing designs for contract manufacturing (DFM documentation, test jig design, assembly instructions)
• Familiarity with IR remote control protocols (NEC, RC5, or similar)
• Experience designing production calibration routines for sensor-equipped assemblies
Engagement Details
• Location: United States only. We will ship you complete product units for development and testing. You must be able to receive hardware at your location and work with it on a properly equipped bench.
• Initial engagement: Approximately 10 weeks for Phase 1 (reliability retrofit)
• Long-term potential: This project is Phase 1 of a multi-phase product evolution. Phase 2 involves replacing third-party internals with our own designed electronics. Phase 3 involves custom tooling and premium features. Successful completion of Phase 1 will likely extend into future phases involving deeper subsystem redesign and new feature integration — potentially 12–18 months of ongoing work.
• Commitment: 20–30 hours per week
• Equipment required: Soldering station, multimeter, and oscilloscope or logic analyzer. We provide all product hardware, components, and development boards.
• Communication: Weekly video check-in plus async communication via Slack or email. We are responsive and technically engaged — you will not be working in a vacuum.
• Payment: Hourly or milestone-based. We are open to either structure. Milestones are tied to demonstrated working functionality (e.g., RS-485 communication working on bench, sensors integrated and reporting, convergence logic passing stress tests).
• IP: NDA required before sharing schematics and source code. All work product is owned by our company.
What We Provide
• Two complete product units shipped to you for teardown and development
• Existing PCB schematic and EagleCAD files
• Existing AVR firmware source code
• Raspberry Pi–side application code (communication module)
• Documentation on the current IR protocol and command set
• A detailed technical project brief covering architecture, protocol requirements, sensor approach, milestones, and acceptance criteria
• Component budget for sensors, transceiver ICs, connectors, and prototype PCBs
How to Apply
- Answer all screening questions below in detail. We are looking for specific, experience-based answers that demonstrate you have shipped real hardware. Responses that restate the job description without concrete examples will not be considered. Shortlisted candidates will receive a detailed project brief and may be asked to complete a short paid technical task before formal engagement. This is a serious engineering engagement, and we are open to long-term collaboration beyond Upwork for the right candidate.