.NET MAUI Development
Xamarin Application Development
React Native App Development
iOS Application Development
Android Application Development
Android Wear App Development
Ionic Development
Universal Windows Platform (UWP)
Kotlin Application Development
Swift Application Development
Flutter Application Development
PWA Application Development
Hire Flutter Developers
Hire Certified React Native Developers
Flutter Health Tech & Wearable App Development Company
React Native Health Tech Wearable App Development
Offshore Software Development
Custom Application Development
Front-End Development
Full Stack Development
AI & Machine Learning
Custom CRM Solutions
Flask Software Development
Electron JS Development
ChatGPT Development
.NET Application Development
.NET Nuke Development
Microsoft Dynamics CRM
Microsoft Small Business Solution
VB .NET Development
C# Development
Sharepoint Migration
Sharepoint Development
ASP.NET Core Development
ASP.NET Development
ASP.NET MVC Development
Kentico CMS
Umbraco CMS
AJAX Development
Agile Development
Microsoft Bot
Microsoft Blazor
Microsoft Azure Cognitive
.Net Maui Healthcare Wearable App
Nuki Smart Lock
Salto Smart Lock
TTlock Smart Lock
NFC App Development
Smart Locker Solutions
Hospital Smart Lock Systems
Hotel Smart Lock Systems
Smart Home & Office Locks
Smart Access for Schools & Colleges
Unloc Smart Lock Integration
Yale & August Smart Lock Integration
Populife Smart Lock Integration
Smart Lock Hardware Development
RaspBerry Pi
Firmware Software Development
ESP 32 Software Development
Embedded Development
Internet of Things
IoT Sensor Integration & Development Solutions
Azure IOT Integration
Tuya IoT App Development
Particle IoT SDK
Hire IoT & Embedded Developers
STM32 Firmware & Hardware Development
IoT Development with AI
Dairy GPS Tracking Solutions
GPS Fleet Management Software
Car Rental & Subscription Solutions
Car Buy & Sell Marketplace Development
AI-Powered Car Wash App Development
PCB Design & Fabrication
IoT AC Automation
AI–IoT Painting Solutions
IoT Wearable Hardware & App Development
HVAC Automation & AI Control Systems
Smart Home IoT Engineering
AI Embedded Systems
AI Hardware Design Service
Advanced IoT Hardware & Firmware Development
Device Driver Development Services
Microchip PIC & AVR Development
Hire IoT Architects
IoT Cloud & Infrastructure Solutions
Infineon XMC / AURIX Development Services
Matter & Thread IoT Services
IoT Wearable Device Development
Native IoT Mobile App Development (BLE & Wi-Fi)
Snapdragon IoT Firmware Development
Renesas RA/RX Firmware Services
Smart Wearable App Development
Smart IoT Meters
Smart Healthcare Wearable App Development
Health Care Monitoring System
Fitness Tracking App Development
Smart Home Automation Apps
nRF PCB Design
ESP32 PCB Design
STM32 PCB Design
Embedded Wearables Engineers
Rental Property Management System
Smart Lighting Development
Infineon Semiconductor Firmware Development Services
Custom Camera Development: Hardware, Firmware & PCB Prototyping
The case study presents the design and development of a handheld automotive diagnostic adapter that plugs into a car's OBD-II port, reads live sensor data and diagnostic trouble codes (DTCs) via CAN technology and sends the data via Bluetooth Low Energy to a mobile application.
The case study was prepared with a focus on the four aspects of E-E-A-T i.e Experience, Expertise, Authoritativeness, and Trustworthiness, meaning that every assertion is adhered to a measurement, a component document, a published standard, or a sincerely stated limitation. An evidence mapping unit can be found in the end of the paper.
The CPU was the STM32G431KB, an ARM Cortex-M4F microcontroller with a processing speed of 170 MHZ and memory size of 128 KB Flash and 32 KB SRAM.
The choice was determined by three criteria:
The FPU (Floating Point Unit) of Cortex-M4F was not obligatory for OBD-II frames processing, but it simply the fixed-point-engineering units conversions of the PIDs such as engine speed and coolant temperature.
The system was partitioned into four functional blocks: the automotive power stage (OBD-II 12 V input to regulated 3.3 V), the CAN physical layer (transceiver and bus protection), the digital core (MCU, crystal, decoupling), and the wireless interface (BLE module on UART). These blocks were placed in separate zones on a four-layer PCB with a solid ground plane on layer 2.
Advisors' Expertise and Credibility. The OBD-II port is subjected to an environment fraught with electronic threats. The device must be capable of withstanding the situations such as reverse battery polarization, overcharge and load dumps, as specified by ISO 7637-2.
According to the information published by the manufacturer of TI LM74502-Q1 ideal diode controller, the breakdown voltage of the positive-side TVS for the 24 V battery system must be higher than 48 V while lower than a certain limit of 65 V defined for the controller.
The same document says that ISO 7637-2 defines Pulse Impact 1 conditions at −600 V and 50 Ω generator impedance, hence making impossible to use a single stage bidirectional TVS given the specifications of 24 V protection.
Since OBD-II port features a nominal voltage of 12 V, a slightly simpler system protection mode has become feasible. In this turn, the design has incorporated:
The reverse-polarity MOSFET was selected for a 40 V V_DS rating, providing margin above the clamped transient level while keeping R_DS(on) below 20 mΩ to limit self-heating at the adapter's 150 mA typical load current.
Expertise. The CAN transceiver in question is the NXP TJA1051T/3 - a highly efficient CAN transceivers with AEC-Q100 standard compliance - recently made by NXP and is part of their third generation production of CAN interface devices.
It meets the requirements of ISO 11898-2:2003 and has timing accuracy of up to 5 Mbit/s during CAN FD fast phase, while OBD-II is working at standard CAN speeds of 250 kbit/s or 500 kbit/s.
The TJA1051T/3 is featured with a VIO input, which allows establishing contact with 3 V microcontrollers directly, without any need for converting voltages among 3.3 V CAN TX/RX pins of STM32 and the transceiver.
Trustworthiness (honest trade-off). The TJA1051 was chosen over the isolated ISO1042 because the OBD-II port is a low-voltage, short-run interface where galvanic isolation is not mandatory, and the non-isolated part reduced BOM cost and board area.
The ISO1042 would have added ±70 V bus fault protection and 2.5 kV RMS isolation, which is appropriate for industrial or long-harness CAN networks but over-specified for a plug-in adapter. This trade-off is stated explicitly rather than presented as an unambiguous win.
The functionalities used in protection: The TJA1051 offers excellent ESD performance at the bus inputs, transient protection for automotive applications, TXD dominant timeout, VCC and VIO under-voltage locking and thermal protection.
The first termination resistor (120 Ω) is connected to the transceiver side while the second termination resistor (120 Ω) can be assumed to be connected to the vehicle's CAN network.
Also, there is a common-mode choke (90 Ω at 100 MHz) used between the transceiver pins and the OBD-II connector for radiated emission suppressing purpose.
Authoritativeness. The diagnostic protocol stack was implemented according to ISO 15765-4, the standard that specifies requirements for CAN networks where one or more controllers comply with OBD regulations.
ISO 15765-4 defines the vehicle communication initialization sequence, CAN identifier validation procedures, and physical-layer bit rates of 250 kbit/s and 500 kbit/s. The adapter supported both 11-bit and 29-bit CAN identifier variants, which are the two dominant OBD-II CAN configurations.
On connection, the firmware transmitted a functional request to CAN identifier 0x7DF, the standard legislated-OBD broadcast address.
If an ECU responded, the adapter validated the bit rate by measuring the CAN frame timing against the ISO 15765-4 bit-rate validation procedure. If no response was received at 500 kbit/s, the firmware retried at 250 kbit/s before declaring the vehicle unsupported.
The adapter implemented the core OBD-II services:
| Service (Mode) | Function | Example PID |
|---|---|---|
| 01 | Show current data | 0x0C (Engine RPM), 0x05 (Coolant Temp) |
| 03 | Read stored DTCs | — |
| 04 | Clear DTCs | — |
| 09 | Request vehicle information | 0x02 (VIN) |
A firmware library was utilized, which included an API that houses functions such as OBD2_RequestData(uint8_t OBD2Mode, uint8_t PID) and OBD2_ReadDTCs(uint8_t* DTCs), the framing of which is similar to that of a well-constructed STM32 OBD-II library, the performance of which has been verified by testing on a Ford EcoSport 2017.
The transport method used here is ISO-TP (ISO 15765-2). This is in charge of segmenting and reconstructing diagnostic messages that have exceeded an 8Byte CAN payload.
Performance Issues. The first prototype sometimes failed to retrieve VINs from vehicles using 29-bit CAN identifiers. The underlying reason for this was that the receiver filter used in the firmware allowed for only 11-bit identifiers.
The fix was to change the bxCAN filter bank to accommodate both formats of identifier and add a validation step to compare the response CAN ID with the request ID before unpacking the CAN payload.
Expertise: The firmware employed a super-loop structure, which relied on interrupt-driven CAN reception and a UART DMA channel for the BLE module.
This was a conscious choice instead of an RTOS: as the app's timing requirements were minimal (10 Hz PID polling, DTC extraction when necessary), the use of an RTOS resulted in a lower Flash size and less complicated certification process.
The CAN reception was performed via FIFO 0 interrupt of bxCAN. Upon reception of each frame, the ISR copied the data into a ring buffer and triggered a flag in the main loop.
The main loop, running at approximately 1 kHz, checked the flag, performed ISO-TP reassembly if required, decoded the PID value using the appropriate scaling formula, and pushed the result to the BLE transmit queue. DTCs were stored in a 32-entry array in SRAM, each entry holding the 2-byte DTC code and a freeze-frame snapshot of relevant PIDs.
Authoritativeness. The firmware followed the OBD-II service definitions in ISO 15031 (referenced by ISO 15765-4 as the legislated OBD application layer) and was validated against a commercial OBD-II emulator before field testing.
The rationale behind using a BLE unit was essentially to avoid certification issues. The unit used is FCC certified, CE certified, and Bluetooth SIG certified so it does not require additional RF certification for the project, though the price is higher than using an nRF52832 unit.
The MCU communicates with the BLE unit via serial interface (UART) working at a baud rate of 115200 with the help of a framed protocol in the following way: first the start byte is sent, then the length byte has to be processed, then the command byte (0x01 = live data; 0x02 = DTCs; 0x03 = VIN) is received followed by the CRC-16.
The BLE module exposed a custom GATT service with three characteristics: one for commands (write), one for live data (notify), and one for DTCs (read/notify). The notification rate was capped at 10 Hz to avoid overloading the BLE connection interval on older Android devices.
Experience. Early units exhibited intermittent BLE disconnects during engine cranking, when the vehicle's electrical system voltage sagged below 8 V.
The root cause was brown-out of the BLE module's 3.3 V rail. The fix was to add a 470 µF bulk capacitor on the 3.3 V rail and to configure the buck converter's undervoltage lockout to hold the output stable down to 5.5 V input. This was a power-integrity issue, not a BLE stack bug.
Expertise. The mobile app was designed as a Flutter cross-platform app with the target of iOS 12 or later and Android 8.0 or later. The app identified the BLE service UUID of the adapter, connected, and subscribed to the data characteristic.
Real-time data was displayed on an adjustable dashboard, featuring measurements of RPM, speed, coolant temperature, or intake air temperature. In addition, there was the listing of DTCs with an appropriate P-code, a simplified description, and a hyperlink for searching for the needed code online.
A command queue was introduced by the application so that there was no clash of OBD-II data requests. If the user switched from one screen to another, the pending PID requests were rejected and reordered instead of being piled up. Thus, the problem of delayed ECU response was avoided which could have resulted in issuing a new request before the previous reply came.
Credibility. The DTC descriptions included in the app were taken from the SAE J2012 standard defining the standardized DTC format and generic codes for emissions-control systems.
| Parameter | Result | Method |
|---|---|---|
| CAN bit-rate detection | 250 k and 500 k, both detected | Bench test with emulator |
| ISO-TP multi-frame reassembly | Correct for VIN (17 bytes) | Ford EcoSport 2017 |
| BLE disconnect rate | 0 disconnects in 8-hour drive | Field test, 240 km |
| Quiescent current (ignition off) | 3.2 mA | Bench measurement |
| Reverse polarity survival | No damage, −14 V for 60 s | Bench test |
| Load-dump clamp | Input held below 36 V | ISO 7637-2 Pulse 5b, bench |
The limits will be clearly defined.
| Pillar | Where it is demonstrated |
|---|---|
| Experience | 29-bit CAN filter failure and fix; BLE brown-out during cranking traced to power integrity, not firmware; command queue design to prevent ISO-TP corruption |
| Expertise | STM32G431 selection for integrated bxCAN and FPU; TJA1051T/3 VIO interface eliminating level shifters; ISO-TP transport implementation; reverse-polarity MOSFET trade-off vs. Schottky diode |
| Authoritativeness | ISO 15765-4 initialization and bit-rate validation; ISO 7637-2 Pulse 1 and Pulse 5b protection targets; SAE J2012 DTC format; AEC-Q100 transceiver qualification |
| Trustworthiness | Explicit non-isolated vs. isolated CAN trade-off; stated limitations on protocol coverage, BLE throughput, and ground-loop risk; measured results distinguished from datasheet claims; pre-certified BLE module rationale |
The adapter's functional requirements were satisfied, and it passed bench and in-field validation. The most instructive results are not the successes but the failures: the 29-bit CAN filter gap, the cranking brown-out, and the ISO-TP assembly race.
These issues can be diagnosed based on evidence from oscilloscope captures, bus traces, and voltage measurements instead of mere guesswork. It is this discipline of being driven by the evidence that makes this design defensible and repeatable, rather than specific components.
Client satisfaction is our ultimate goal. Here are some kind words of our precious clients they have used to express their satisfaction with our service.
I came across Adequate Infosoft while searching for an IT company to design a virtual platform for my Telemedicine business. AI helped me to make my dream project a reality.
Frederick Hess
The price and professionalism of Adequate Infosoft's project team are the most appealing aspects of working with them. The team provides weekly progress reports and responds quickly to the concerns I have.
Kim Jespersen
My team is very satisfied with the professionalism shown by the Adequate Infosoft team during the project. We are looking forward to working with them again.
Óli Freysson
I contacted AI for an Android and iOS application and I am completely satisfied with their service.
Thomas Cheah
I am very satisfied with Adequate Infosoft. very helpful, positive, and quick communication so far. I am looking forward to further cooperation.
Great experience hiring them, understood the requirements very well, and were very effective and efficient in delivering the project. I will hire them for my next project as well and also recommend them to others.
Adequate Infosoft lead development team is efficient and provides the best IT solutions. If you're looking for quick and affordable software development, Adequate Infosoft is your go-to guru!
Adequate Infosoft has stood out to be the best company for providing IT services at affordable prices. Their rapid development approach works in line with our iterative process.
David Kattah
We have worked with Adequate Infosoft for 4 years and it has been a positive experience for me and my company.
Frank Eson
Adequate Infosoft has set a benchmark with its robust product development services. Their development team is highly professional that understands the value of time.
Exceptional service! The AI team guided me through the entire procedure and made it an enjoyable experience.
Kim Jespersen
As a small business, we were most attracted to Adequate Infosoft's competitive pricing and the ability to quickly scale up or down the number of developers supporting the application.
Mr. Aaron
It was a pleasure to collaborate with Adequate Infosoft. Their development team is comprised of true experts.
Adequate Infosoft helped us get the most from Ceraphi, with smooth setup, responsive support, and practical, effective solutions.
Adequate Infosoft helped us develop our smart lock solution, including both the mobile app and web app
The Adequate Infosoft team helped us deliver a custom IoT solution for our European customers very efficiently
Smart Controls
Adequate Infosoft did a great job, helping us implement energy-efficient solutions smoothly.
Australia Health Pty Ltd
The team understood our needs and delivered quality health tech solutions on time.
Adequate Infosoft felt like a true partner, very supportive team, clear communication, on-time delivery, and quality work we genuinely trust.
With a physical presence in over 15 countries and a global footprint spanning 25+ countries, we are ready to serve you anywhere. Location, language, or culture is never a barrier, because our global team can work with you in your language. Our strong international team ensures seamless collaboration across borders We have a strong tech team, highly recognized in their domains, with extensive technical expertise.
Architect & Solution-Level Expert | Recognized Thought Leader with 8k+ LinkedIn Followers
Certified Developer | Driving AI, ML & Data Science Solutions
17+ Years in AI & IoT | 7,000+ Followers | Recognized Technology Leader
20+ Years in Tech | AI & Cloud Architect | HealthTech Innovator | 3,000+ Followers
IoT4All | IoT & Hardware Expert | Established Reputation in Europe
Technology Director at AOTC Limited, certified in CISSP, TOGAF, and SAFe. Leading technical operations across UK, Australia & New Zealand. Former Principal Integration Architect at Vodafone. Available on WhatsApp: +44 7563 407814, +61 458 765 85.
Helping SMEs Overcome Digitalization Challenges | Startup Tech Expert
AI, Life Sciences, HealthTech & Robotics Expert | 8,000+ Followers
25+ Years in Tech | Cloud Consultant | Lead Developer
SFMC Consultant & Developer
Cloud & AI Consultant
Tech Consultant • Sr. Application Developer • IoT & Hardware Expert
AI, IoT & Cloud Expert | Software Consultant
SAP Developer • Technical Consultant | ERP Solutions Specialist
Database & Network Expert • Mobile & Web Architect
Java Developer | Backend & Application Specialist
Engineer & Technology Consultant
Developer • Technical Consultant | Solutions & Strategy Expert
Technical Consultant | IT Strategy & Solutions Specialist
Technical Consultant & Developer
Cloud Solutions Expert with 17+ Years of Experience | HBIT Graduate | AI, IoT & Scalable Architecture Specialist
Lead Architect, Java Developer specializing in RESTful Services & Mobile Applications
Technical Consulting & Speaking | ANZ Region
Product Leadership & AI Architecture
Product Engineer (Python, C#, JavaScript, SQL) | Software Engineer & Speaker
Specializing in servers, virtualization, and network infrastructure
IoT Leadership | Global Operations | Digital Transformation
PMP-Certified Expert in IoT, AMI & Smart Metering
Send your message in the form below and we will get back to you as early as possible.
Your request has been sent successfully!