perf: port Android BLE timeout optimizations to iOS #20

Closed
koda wants to merge 1 commit from koda/faster-ble-timeouts into main
Collaborator

Ports all BLE timing reductions from payfrit-beacon-android (PRs #6/#9) to the iOS beacon app.

Changes (BeaconProvisioner.swift)

Timing Before After
Base write delay 0.5s 0.2s
Heavy write delay (frame select/type) 1.0s 0.4s
Large payload delay (UUID) 0.8s 0.3s
Response gate timeout 1.0s 0.5s
Per-write timeout 5.0s 2.0s
Global provisioning timeout 90s 30s
Read config timeout 15s 8s
Password retry delay 0.5s 0.2s
FFE2 reconnect delay 2.0s 1.0s
Connection retry backoff 1/2/3s 0.5/1/1.5s
Disconnect retry backoff 3/4/5s 1/1.5/2s
Read query delays 0.4s 0.2s
Reconnect resume delay 1.5s 0.5s
Final response wait 2.0s 1.0s

Same optimization strategy as Android: 40-60% reduction in total provisioning time.

DX-Smart beacons (the only ones we actively use) should see the biggest improvement.

Ports all BLE timing reductions from payfrit-beacon-android (PRs #6/#9) to the iOS beacon app. ## Changes (BeaconProvisioner.swift) | Timing | Before | After | |--------|--------|-------| | Base write delay | 0.5s | 0.2s | | Heavy write delay (frame select/type) | 1.0s | 0.4s | | Large payload delay (UUID) | 0.8s | 0.3s | | Response gate timeout | 1.0s | 0.5s | | Per-write timeout | 5.0s | 2.0s | | Global provisioning timeout | 90s | 30s | | Read config timeout | 15s | 8s | | Password retry delay | 0.5s | 0.2s | | FFE2 reconnect delay | 2.0s | 1.0s | | Connection retry backoff | 1/2/3s | 0.5/1/1.5s | | Disconnect retry backoff | 3/4/5s | 1/1.5/2s | | Read query delays | 0.4s | 0.2s | | Reconnect resume delay | 1.5s | 0.5s | | Final response wait | 2.0s | 1.0s | Same optimization strategy as Android: 40-60% reduction in total provisioning time. DX-Smart beacons (the only ones we actively use) should see the biggest improvement.
koda added 1 commit 2026-03-22 16:59:51 +00:00
Port all timing reductions from payfrit-beacon-android PR #9:
- BASE_WRITE_DELAY: 0.5s → 0.2s
- HEAVY_WRITE_DELAY: 1.0s → 0.4s
- LARGE_PAYLOAD_DELAY: 0.8s → 0.3s
- RESPONSE_GATE_TIMEOUT: 1.0s → 0.5s
- WRITE_TIMEOUT: 5.0s → 2.0s
- GLOBAL_TIMEOUT: 90s → 30s
- Read config timeout: 15s → 8s
- Password retry delay: 0.5s → 0.2s
- FFE2 reconnect delay: 2.0s → 1.0s
- Connection retry backoff: halved (0.5s/1.0s/1.5s)
- Disconnect retry backoff: halved
- Read query delays: 0.4s → 0.2s
- Reconnect resume delay: 1.5s → 0.5s
- Final response wait: 2.0s → 1.0s
schwifty closed this pull request 2026-03-22 18:43:36 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: payfrit/payfrit-beacon-ios#20
No description provided.