Skip to content

EVDx v1.4.0 Pre-Release

Pre-release
Pre-release

Choose a tag to compare

@waleedmandour waleedmandour released this 14 Jun 08:32

EVDx v1.4.0 — Production-Grade OBD-II Connection Overhaul + Critical Fixes

🔧 OBD-II Device Connection & Protocol Improvements

BLE Service (ble-service.ts)

  • Complete ELM327 initialization per ELM Electronics datasheet
  • Protocol auto-detection with ATSP0 (SAE J1979 protocols 1–9, A–C)
  • Adapter identification: firmware (ATI), description (AT@1), identifier (AT@2)
  • Clone chip detection: STN vs genuine ELM327 vs PIC clone
  • 10 BLE adapter profiles
  • PID support detection per SAE J1979
  • DTC reading: Mode 03 (stored), Mode 07 (pending), Mode 0A (permanent)
  • DTC clearing: Mode 04
  • VIN retrieval: Mode 09 PID 02
  • WiFi ELM327 support via WebSocket
  • Adapter voltage reading (ATRV)
  • Response buffer cleared on timeout to prevent stale data

🐛 Critical Bug Fixes (from comprehensive code review)

DTC Parser (store.ts + ble-service.ts)

  • Fixed Mode 03 parser: skip count byte correctly
  • Fixed DTC code encoding: hex for low nibble, preserve first digit from high nibble
  • Fixed DTCEvent objects: add required active/count fields
  • Fixed DTC severity: use valid DTCSeverity values

VoiceAssistant.tsx

  • Fixed Rules of Hooks violation: moved early return after all useCallback hooks

ChargingView + LiveDataView

  • Fixed Math.random() in render path causing infinite re-renders
  • Used useMemo + stable sine-based variation

BatteryView.tsx

  • Fixed division by zero: guard cellMaxV with fallback 3.7V

Permissions (permissions.ts)

  • Fixed granted: true returned even when permissions were missing

SessionsView.tsx

  • Now uses settings.electricityCostPerKwh instead of hardcoded value

I18nProvider.tsx

  • Added document-level dir/lang setup for proper RTL support

Android Network Security

  • Fixed network_security_config.xml: removed broken includeSubdomains on IPs
  • Added comprehensive list of common ELM327 adapter IPs across subnets

Android config.xml

  • Replaced wildcard <access origin="*" /> with local-only patterns

RTL Fixes

  • Replaced text-left with text-start across all components

Package Cleanup

  • Removed incompatible: next-auth, prisma/@prisma/client
  • Removed version-mismatched: @dnd-kit packages
  • Removed unused: i18next-http-backend, next-intl, sharp

📚 References

  • ELM327 Datasheet (ELM Electronics)
  • SAE J1979-2016 OBD-II Standard
  • ISO 15765-4 CAN Bus Protocol

⚠️ Pre-Release Notice

This is a pre-release version for testing.

Author: Dr. Waleed Mandour