KiCad PCB Layout for Automotive OBD2 Bluetooth Sensor (Phase 1)
Worldwide
Project Overview We are looking for an experienced embedded systems and hardware engineer to design a custom schematic, PCB layout, and core firmware for an automotive-grade, headless cabin air quality monitor named StanSense. The device plugs directly into a standard vehicle OBD2 port (SAE J1962) and acts as a passive safety monitor. It features no screen and no internal battery (for cabin thermal safety). It alerts the driver via an onboard buzzer/LED and communicates data to a smartphone via Bluetooth Low Energy (BLE). The design must be completely optimized for JLCPCB SMT automated assembly using their Basic/Extended parts library to achieve a low Bill of Materials (BOM) cost. Technical Specifications & Requirements 1. Hardware & Component Selection EDA Tool: Must be designed entirely in KiCad (v7 or v8). Microcontroller: Espressif ESP32-S3-MINI-1 (or ESP32-C3-MINI-1) utilizing its pre-certified modular FCC footprint to leverage modular approval rules. Sensor: Sensirion SCD40 Photoacoustic NDIR CO2 sensor configured over I2C. Power Supply Network (Critical): Input pulls from OBD2 Pin 16 (variable 12V to 14.4V DC). The design must feature robust transient voltage protection (unidirectional TVS diode + Pi filter) to survive automotive load dumps up to 40V. Voltage regulation must use a high-efficiency synchronous DC-DC Buck Regulator stepping down to 3.3V (Linear LDOs are prohibited due to thermal layout limits). Power Gating: Include a P-channel MOSFET switch controlled via an MCU GPIO line to completely cut the ground/power path to the SCD40 sensor during long-term sleep modes. Peripherals: 1x Passive Piezo Buzzer (PWM driven), 1x Dual-color status LED (Common Cathode), and 1x basic CAN Transceiver connected to OBD2 pins 6 and 14. 2. Firmware & Security State Machine Architecture The core C/C++ firmware must implement a robust low-power state machine, basic vehicle telemetry querying, and modern BLE security: Vehicle Telemetry Interface: Firmware must implement standard ISO 15765-4 CAN protocols to query standard, non-proprietary OBD-II PIDs: Engine RPM (Mode 01, PID 0C) and Vehicle Speed (Mode 01, PID 0D). Note: We are not building a diagnostic scanner; this data is used strictly for internal state machine logic. State 1 (Deep Sleep): MCU in deep sleep, CO2 sensor completely isolated via the MOSFET switch. Wakes up when a voltage jump above 13.5V is detected or basic CAN broadcast activity is spotted. State 2 (Ignition/Warm-up): Triggered when Engine RPM greater than 0. Power is gated to the sensor to execute a 3-minute warm-up sequence. State 3 (Active Monitor): Read data over I2C, evaluate thresholds, and advertise data via BLE. If Vehicle Speed greater than 65 MPH, the alert threshold sensitivity increases dynamically to protect against highway drowsiness. If Engine RPM drops to 0 for more than 5 minutes, automatically transition to State 4. State 4 (24-Hour Calibration Buffer): Enter a low-power duty cycle for 24 hours post-drive. Sleep for 29 minutes, wake for 1 minute to sample air, and log baseline calibration values directly to the ESP32 internal non-volatile flash memory. After 24 hours, enter permanent deep sleep until the next engine start. BLE Security & Encryption: Data transmission and pairing must be secured using LE Secure Connections with Passkey Authentication (MITM protection). The firmware must validate connection requests against a unique, static 6-digit PIN code stored in the ESP32 Non-Volatile Storage (NVS). Deliverables Required Complete, uncorrupted KiCad project files (schematic and layout). Production-ready Gerber files, Drill files, BOM, and CPL files mapped directly to active JLCPCB components. A 3D STEP export of the completed PCB layout (to pass to our enclosure designer). Fully commented, production-ready C/C++ firmware source code implementing the power state machine, standard CAN querying, and sensor communication. Local Production Provisioning Script: A simple desktop automation script (Python/esptool-based) that generates a unique random 6-digit pairing PIN, flashes it into the target ESP32 module's NVS partition over USB, logs the device serial number/PIN assignment to a local CSV file, and formats the pairing key into a printable label format for serial labeling. Project Schedule & Fixed-Price Milestones We are managing this project through three strict, fixed-price milestones totaling $350 USD: Milestone 1 ($100.00): Schematic Approval Delivery of the full schematic PDF showing the automotive power protection circuitry, MCU hooks, CAN transceiver layout, and power-gating layout. Milestone 2 ($150.00): PCB Layout & Production Files Delivery of the final routed 2-layer PCB layout, 3D STEP file, and verification that all selected parts are active and ready in the JLCPCB assembly library. Milestone 3 ($100.00): Firmware Implementation & Provisioning Hand-off Delivery and review of the functional firmware source code demonstrating the ISO 15765-4 CAN PID queries, 24-hour low-power logging cycle, BLE secure pairing, and the desktop script for local production flashing. Experience Level Required: Intermediate or Expert. Please do not apply if you do not have direct, proven experience with automotive power design, low-power ESP32 state machines, standard OBD-II CAN query architectures, and BLE security profiles. Please include the word "StanSense" at the top of your proposal so I know you have read this complete brief.
$350.00
Fixed-price- ExpertExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:Less than 5
- Last viewed by client:4 hours ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- India5:49 PM
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