Embedded Hardware / Firmware Development - High-Speed Parallel & Serial to Ethernet Server
Worldwide
Embedded Hardware/Firmware Development – High-Speed Parallel & Serial to Ethernet Server Project Overview I am seeking an experienced embedded hardware and firmware engineer to design a production-ready device that connects legacy parallel and serial equipment to modern Ethernet networks. The device will: - Emulate a parallel printer connected to a PC LPT port - Communicate with RS-232 serial devices - Transfer data bidirectionally over Ethernet using configurable TCP ports - Provide a web-based configuration interface - Support firmware updates through the web interface - Be manufacturable through JLCPCB using components available through the LCSC/JLCPCB ecosystem The final deliverable must include all hardware design files, firmware source code, manufacturing files, and documentation required to produce the device. --- Intended Use The primary use case is connecting legacy industrial and DOS/Windows software systems that currently communicate through: - Parallel printer ports (LPT) - RS-232 serial ports The host PC should not require any special software or drivers beyond standard printer or serial port configuration. --- Project Structure The project should be completed in two phases: Phase 1 – Architecture & Proof of Concept - Architecture proposal - Component selection - Throughput analysis - Preliminary schematic - Proof-of-concept demonstration - Validation that the proposed architecture can meet performance requirements Phase 2 – Production Design - Final hardware design - PCB layout - Firmware development - Web interface development - OTA firmware update implementation - Manufacturing documentation - Final testing and acceptance --- Physical Interfaces The device shall include: - 1 × Male DB25 Parallel Connector - 1 × Female DB9 RS-232 Connector - 1 × RJ45 Ethernet Connector - 1 × Industrial DC Power Input Preferred power connector: - Removable screw-terminal connector Status LEDs are preferred for: - Power - Ethernet Link - Ethernet Activity - Serial Activity - Parallel Activity --- Parallel Port Requirements Printer Emulation The DB25 interface shall emulate a standard parallel printer connected to a PC LPT port. The device is intended to connect to a host PC using a standard parallel printer cable. The PC should recognize the device as an available printer without requiring custom host-side software. The device must behave as a printer-side peripheral, not as another PC-style parallel port. --- Supported Signals Required: - D0-D7 - STROBE - ACK - BUSY - SELECT - ERROR Preferred: - INIT - AUTOFEED - PAPER OUT --- Operation The device shall: 1. Receive data presented on D0-D7. 2. Detect STROBE transitions. 3. Store incoming data in an internal buffer. 4. Generate ACK responses. 5. Assert BUSY when required. 6. Forward received data to Ethernet. The device shall maintain printer status signals so that the host PC believes a printer is online and available. --- High-Speed Operation Although the interface emulates a printer, the intended application is high-speed binary data transfer rather than document printing. The device must: - Accept continuous data streams. - Handle back-to-back STROBE operations. - Buffer data during Ethernet transmission delays. - Prevent data loss through proper BUSY control. Performance targets: - Minimum sustained throughput: 500 KB/sec - Desired sustained throughput: 1 MB/sec or greater The developer should propose an architecture capable of meeting these requirements. Use of FPGA, CPLD, DMA, FIFO memory, or dedicated buffering logic is acceptable and encouraged if necessary. The goal is reliable operation at the maximum practical speed supported by a PC parallel port while maintaining compatibility with standard printer-style handshaking. --- Data Direction Primary requirement: PC → Device → Ethernet True IEEE-1284 bidirectional operation, ECP mode, and EPP reverse-channel communication are not required unless the developer believes they are necessary to achieve compatibility or performance goals. --- Serial Port Requirements Interface - Standard RS-232 - Female DB9 connector --- Supported Baud Rates At minimum: - 9600 - 19200 - 38400 - 57600 - 115200 Additional baud rates are welcome. --- Serial Data Flow The serial port shall support full bidirectional communication. Data received from the serial port shall be forwarded to a configurable TCP connection. Data received from Ethernet shall be transmitted to the serial port. --- Ethernet Requirements Network Interface - 10/100 Ethernet - Auto-negotiation - DHCP support - Static IP support --- TCP Services The device shall provide independent TCP services for the parallel and serial interfaces. Parallel Port Service Default example: - TCP Port 9100 Parallel data received from the PC shall be forwarded to connected TCP clients. Serial Port Service Default example: - TCP Port 9101 Serial data shall be transmitted and received through a separate configurable TCP connection. --- Automatic Recovery The device shall automatically recover from: - Network interruptions - TCP disconnects - Temporary communication failures without requiring a power cycle. --- Web-Based User Interface The device shall include an embedded web server. No external software should be required for configuration. --- Configuration Pages Network Settings - DHCP/Static - IP Address - Subnet Mask - Gateway - DNS Parallel Settings - Status Information - Statistics Serial Settings - Baud Rate - Serial Statistics Device Information Display: - Firmware Version - Current IP Address - MAC Address - Uptime - Active Connections --- Firmware Updates The device shall support firmware updates through the web interface. Requirements: - Upload firmware image through browser - Validation before installation - Automatic reboot after successful update - Configuration retained after update Preferred: - Recovery mechanism in case of interrupted updates --- Power Requirements Input Voltage Range: - 5VDC to 28VDC The design shall include: - Reverse polarity protection - Input transient protection - Over-voltage protection - Voltage regulation - Industrial power-input design practices --- Hardware Requirements Manufacturing The design must be compatible with: - JLCPCB PCB fabrication - JLCPCB SMT assembly --- Components Preference shall be given to: - Components available through LCSC/JLCPCB - Long-term availability - Industrial-grade parts where practical --- PCB Preferred features: - Compact footprint - Mounting holes - Clearly labeled connectors - Serviceable design --- Firmware Requirements Complete source code must be provided. Preferred platforms: - ESP32 - STM32 - Similar industrial embedded platform No proprietary or locked firmware solutions. --- Reliability Features Required: - Watchdog recovery - Configuration persistence - Graceful handling of network disconnects - Robust TCP communication - Error logging where practical --- Architecture Expectations Because of the required parallel-port throughput, developers should carefully consider timing and buffering requirements. Architectures utilizing: - FPGA - CPLD - DMA - Dedicated FIFO buffering are acceptable and may be preferred if needed to achieve performance targets. The proposal should explain: - Processor selection - Ethernet implementation - Parallel-interface implementation - Buffering strategy - Expected throughput Preference will be given to proposals that use hardware-assisted parallel capture rather than a software-only implementation. --- Expected Data Flow Parallel Port (DB25) → Capture Logic (FPGA/CPLD/FIFO) → Ethernet MCU → Configurable TCP Port RS-232 (DB9) ↔ Ethernet MCU ↔ Configurable TCP Port --- Deliverables Hardware - Schematics - PCB Layout Files - Gerber Files - BOM - Pick-and-Place Files - Manufacturing Notes --- Firmware - Complete Source Code - Build Instructions - Programming Instructions - Firmware Update Documentation --- Documentation - User Guide - Configuration Guide - Manufacturing Guide --- Ownership and Intellectual Property All source code, schematics, PCB files, FPGA/CPLD source files, manufacturing files, documentation, and intellectual property developed under this project shall become the sole property of the client upon final payment. The developer shall provide editable native design files for all tools used in the project. Examples include: - KiCad project files - Altium project files - Verilog/VHDL source files - ESP-IDF projects - STM32 projects --- JLCPCB Validation Prior to project completion, the developer shall verify that all components are available through LCSC/JLCPCB and provide a BOM suitable for JLCPCB assembly. --- Acceptance Criteria The completed device must: 1. Be fully manufacturable through JLCPCB. 2. Operate from 5VDC–28VDC. 3. Emulate a standard parallel printer interface. 4. Support RS-232 communication up to at least 115200 baud. 5. Provide a browser-based configuration interface. 6. Support firmware updates through the web interface. 7. Store configuration in non-volatile memory. 8. Transfer parallel data to Ethernet at a minimum sustained rate of 500 KB/sec. 9. Target 1 MB/sec sustained parallel throughput. 10. Support simultaneous operation of the serial and parallel interfaces. 11. Automatically recover from network interruptions. 12. Provide complete source code and design files. Final acceptance shall require a demonstration showing sustained parallel data transfer at the specified throughput without data loss. --- Proposal Requirements Please include: - Relevant embedded hardware projects - FPGA/CPLD experience - Ethernet networking experience - JLCPCB manufacturing experience - Proposed architecture - Estimated timeline - Fixed-price quote - Description of how throughput requirements will be achieved
- Not SureHourly
- 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:2 weeks ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- United StatesEastchester7:14 AM
- $4.5K total spent7 hires, 0 active
- 235 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