airoc_connect_flutter 0.0.8 copy "airoc_connect_flutter: ^0.0.8" to clipboard
airoc_connect_flutter: ^0.0.8 copied to clipboard

A Flutter plugin for Infineon AIROC Bluetooth OTA (Over-The-Air) firmware upgrades. Supports Android, iOS, and macOS.

AIROC Connect Flutter Changelog #

0.0.8 #

Lowered Minimum SDK Requirements

  • Minimum Dart SDK lowered from 3.8.1 to 3.2.0
  • Minimum Flutter lowered from 3.32.7 to 3.16.0
  • Downgraded crypto to ^3.0.3 and flutter_lints to ^4.0.0, the last versions compatible with Dart SDK 3.2

0.0.7 #

OTA Workflow Redesign & Connection Stability

Platform Support: Android, iOS, macOS

New Features #

  • Auto-Unpair After OTA - Once the upgrade completes, the device is automatically unpaired to clean up the pairing state: Android calls removeBond(), while iOS/macOS disconnect (CoreBluetooth exposes no programmatic unpair API).
  • Explicit Manual Pairing — Added "Pair Device" as Step 1 in the OTA workflow. Users must manually pair before proceeding to service discovery and upgrade. Paired state is visually indicated (Not Paired / Pairing… / Paired ✓).
  • 4-Step OTA Workflow — Expanded from 3 steps to 4 steps for clearer operation flow:
    • Step 1: Pair Device — Manually pair with the device
    • Step 2: Discover Services — Read device service UUIDs
    • Step 3: Select Firmware — Choose a firmware file
    • Step 4: Start OTA Upgrade — Begin the firmware update
  • Colorized Debug Logging — Terminal output now uses ANSI color coding: level-specific badges (blue=info, yellow=warning, red=error), green tags, gray timestamps, magenta TX / cyan RX hex dumps.
  • Characteristic Property Filtering — Service discovery dropdowns now only show characteristics that support both WRITE and NOTIFY capabilities.

Bug Fixes #

  • Fixed macOS Pairing "android-only" Error — Pairing and OTA no longer throw android-only on macOS/iOS. The example app previously called flutter_blue_plus Android-only APIs (createBond(), bondState) unconditionally on all platforms; these are now guarded behind Platform.isAndroid. On iOS/macOS (CoreBluetooth), which expose no programmatic pairing API, pairDevice() just connects and pairing is triggered implicitly by the OS when an encrypted characteristic is accessed; isDeviceBonded() / isBonded fall back to connection state. Android retains its explicit createBond() flow unchanged.
  • Fixed Repeated Pairing Prompts — Eliminated unnecessary disconnect/reconnect cycles throughout the OTA flow. A single continuous BLE connection is now maintained from pairing through OTA completion, matching iOS CoreBluetooth behavior.
  • Fixed "WRITE property not supported" Error — Transport layer now auto-detects whether the characteristic supports write or writeWithoutResponse and uses the correct write mode.
  • Fixed Multiple createBond() Calls — Removed auto-pairing logic from the transport layer. Pairing is now exclusively handled by the user-facing "Pair Device" step.

Technical Improvements #

  • Single Continuous ConnectionFlutterBluePlusOtaTransport.connect() no longer forces disconnect/reconnect when the device is already connected. It reuses the existing connection to avoid bond re-negotiation.
  • Transport Write Detectionwrite() auto-falls back to writeWithoutResponse when the characteristic lacks WRITE property.
  • Characteristic Discoverydiscover() logs all characteristic properties and selects the best match with both WRITE and NOTIFY capabilities.
  • Pairing State Management — Bond state is checked on OTA screen init to detect previously-paired devices.

Notes #

  • One Connection, One Pairing — Following the iOS CoreBluetooth model, the app now uses a single Bluetooth connection throughout the entire OTA session. Users should only see the pairing dialog once.

0.0.6 #

Version Bump

  • Update version from 0.0.5 to 0.0.6

0.0.5 #

Major UI Refactor and OTA Workflow Optimization

Platform Support: Android, iOS, macOS

New Features #

  • Simplified OTA Upgrade Screen - Refactored multi-page flow into a single-page three-step process
    • Step 1: Discover Services - Discover device services (auto-pair on connect)
    • Step 2: Select Firmware - Select firmware file
    • Step 3: Start OTA Upgrade - Start upgrade
  • Smart Bottom Hint Bar - Displays dynamic operation hints based on current state
  • Auto-Return After OTA - Automatically returns to scan screen 2 seconds after upgrade completes
  • Simplified Device Scan Screen - Removed "OTA only" toggle, scans all devices by default

Bug Fixes #

  • Fixed Pair State Check Logic - Uses bondState.first to wait for stream update, avoiding repeated pairing dialogs
  • Fixed GATT 133 Error - Disconnects existing connection before reconnecting to prevent connection conflicts
  • Fixed Unresponsive Button After Pairing - Re-checks state after pairing to ensure UI updates correctly
  • Removed Redundant Step 1 Pair Card - Pairing now happens automatically during service discovery

Technical Improvements #

  • BLE Connection Optimization - Added pre-connect checks and delays in connect() method to avoid GATT cache conflicts
  • Optimized Pairing Timing - Only triggers createBond() when device is not bonded; directly connects for bonded devices
  • Enhanced Error Logging - Added detailed bond state logs for debugging

Notes #

  • discoverServices() is Required - BLE requires rediscovering services after each connection; this is standard BLE protocol behavior
  • Bootloader Mode May Trigger Pairing - If device changes MAC address after entering bootloader mode, system will treat it as a new device and request pairing

0.0.4+4 #

  • Update document

0.0.3+3 #

  • Modify uuid display error

0.0.3+2 #

  • Update other

0.0.3+1 #

  • Update document

0.0.3 #

  • Initial release with document updates

0.0.1 #

  • Initial release of airoc_connect_flutter
  • Support for Infineon AIROC Bluetooth® firmware upgrades
  • Android, iOS, and macOS platform support
2
likes
160
points
84
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for Infineon AIROC Bluetooth OTA (Over-The-Air) firmware upgrades. Supports Android, iOS, and macOS.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

crypto, flutter

More

Packages that depend on airoc_connect_flutter