Raspberry Pi-Based Automotive Sensor Display in Qt6/QML

Job ID: 40527389

Budget: $30 – $250 USD

Automotive ECU Tester Dashboard Development (Qt6/QML + Raspberry Pi)

Project Overview

I am developing a simple prototype of an Automotive ECU Tester and require an experienced Embedded Software Developer to build a real-time graphical dashboard application for Raspberry Pi.

The dashboard will be connected to an Arduino Mega Pro controller that acquires approx. 33 sensor data and ECU signals in real time.

This is not a web application.

The dashboard must be developed using Qt6/QML and optimized for embedded Linux environments running on Raspberry Pi Zero 2 W and newer Raspberry Pi platforms.

The final system will be connected directly to an HDMI display and must boot automatically into the dashboard without requiring any user interaction.

---
Mandatory Technical Requirements
Software Stack:
* Qt6
* QML
* C/C++
* Raspberry Pi OS (Linux)
* GPU-accelerated rendering using EGLFS
* Hardware-accelerated animations
* Serial communication via UART (between Arduino Mega and Rpi Zero 2W)

The application must:

* Run fullscreen
* Run without a desktop environment
* Launch automatically on boot
* Output to any HDMI-capable display
* Operate as a kiosk appliance

No Electron, Chromium, Python GUI frameworks, web technologies, Flutter, or game engines.

---

System Architecture Requirements

The application must be designed using a modular component architecture.

Examples:

* Gauge.qml
* VoltageMeter.qml
* Indicator.qml
* WaveformView.qml
* InjectorAnimation.qml
* CoilIndicator.qml

Requirements:

* Components must be reusable.
* New gauges must be easily added.
* New indicators must be easily added.
* Layout changes should require minimal code modifications.
* Future expansion should not require redesigning the UI.

The goal is to allow future customization without advanced Qt programming knowledge.

---

Communication Protocol

Mandatory
- The system must use a structured binary protocol.
- Text-based communication is NOT acceptable.
- Examples of unacceptable approaches:
MAF=2.5,MAP=3.1,IAT=22,...

Reasons:
* Higher CPU usage
* Slower parsing
* Fragile communication
* Poor scalability

Required approach:
* Packed binary data structure
* Fixed packet format
* CRC validation
* Packet synchronization
* Error detection

The protocol must be fully documented.
---

Arduino Mega Pro Firmware

Firmware responsibilities:
Analog Inputs
* MAF
* MAP
* IAT
* ECU Voltage
* Sensor Voltage

Digital Signals
* 8 Ignition Coil Channels
* 8 Injector Channels
* Battery
* Switch
* Start Switch Button
* ETC
* Fan 1
* Fan 2
* Fuel Pump
* IMMO+
* IMMO-
* MRC+
* MRC-
* IAC Stepper Signals

Signal Processing
* CKP acquisition
* CMP1 acquisition
* CMP2 acquisition

Requirements
* Timer interrupt architecture
* Waveform buffering
* Extensible code structure
* Well-documented source code

Preferred implementation:
* Timer1 ISR
* 10 kHz acquisition rate minimum

However, I am open to suggestions that result in the betterment of the final prototype.

---

Dashboard Features

Analog Gauges

Animated circular gauges:

* MAF
* MAP
* IAT

Voltage Displays
Digital voltage meters:
* ECU Voltage (0–25V)
* Sensor Voltage (0–5V)

Ignition Coils
* 8 coil indicators
* Positive state visualization
* Negative state visualization
* Firing animation

Injectors
* 8 injector indicators
* Animated spray effect

Digital Status Indicators
* Battery
* Switch
* Start
* ETC
* Fan 1
* Fan 2
* Fuel Pump
* IMMO+
* IMMO-
* MRC+
* MRC-
* IAC signals

Waveform Oscilloscope:
Display real-time scrolling waveforms for:
* CKP
* CMP1
* CMP2

The waveform display is a mandatory feature.
Simple blinking LEDs are not acceptable.
The oscilloscope should allow visualization of:

* Missing tooth patterns
* Cam synchronization
* Timing relationships
* Signal integrity

And I am open to suggestions here too!

---

## Simulation Mode
A complete simulation mode is required.
The dashboard must operate without hardware connected.
Simulation mode should generate realistic values for:

* Gauges
* Voltage readings
* Coil activity
* Injector activity
* CKP waveform
* CMP waveform
* Status indicators

Purpose:
* Demonstrations
* Development
* Testing
* Troubleshooting

---

Debug Panel

A hidden developer panel must be available.

Activation:

F12 key when the keyboard is connected to the Pi

Functions:

Analog Controls

Manual sliders for:

* MAF
* MAP
* IAT
* ECU Voltage
* Sensor Voltage

Digital Controls

Manual toggles for:

* Coils
* Injectors
* Battery
* Switch
* Fuel Pump
* IMMO
* MRC
* IAC
* Fan outputs

### Waveform Controls

Ability to:

* Simulate RPM
* Simulate CKP
* Simulate CMP

This feature will be heavily used during development and validation.

---

## Raspberry Pi Deployment

Developer must provide:

Auto-Boot Configuration

* systemd service
* automatic startup
* watchdog-safe startup sequence

Kiosk Configuration

* no desktop interaction
* automatic application launch
* HDMI display support

Performance Optimization

Target hardware:

* Raspberry Pi Zero 2 W

The dashboard must maintain smooth operation and responsiveness on this platform.

---

Deliverables

Source Code

Complete source code including:

* Qt6/QML frontend
* C++ backend
* Arduino firmware

Executables

* Raspberry Pi ARM build
* Ready-to-run deployment package

Simulation Mode

Fully operational simulation mode

### Debug Panel

Integrated debug interface

### Deployment Scripts

* Installation scripts
* Startup scripts
* systemd configuration

### Documentation

Comprehensive documentation including:

1. System Setup Guide
2. Communication Protocol Specification
3. Dashboard Architecture Guide
4. Adding New Sensors and Components Guide
5. Simulation Mode Guide


---

## Required Experience

Applicants should demonstrate experience with:

* Qt6
* QML
* Embedded Linux
* Raspberry Pi
* Real-time serial communications
* Automotive or industrial systems
* GPU-accelerated embedded UI development

Please provide:

* Relevant portfolio projects
* GitHub links (if available)
* Examples of Qt/QML dashboards
* Examples of embedded Linux projects