hessu / aprs-specs

APRS specifications written or maintained by OH7LZB
23 stars 6 forks source link

Undocumented assumptions in BLE Spec #3

Open vk3jbl opened 3 years ago

vk3jbl commented 3 years ago

In implementing the spec in an ESP32 using Nimble, I uncovered a couple of assumptions not yet documented. These impact both the iPhone APRS.FI app and the mobilinkd Config app from connecting and sending frames to the TNC.

  1. Service UUID needs to be present in the Gap advertisement. Interestingly, very few BLE devices do this, presumably to keep gap packets short, Nimble itself limits the length to 31 which is challenging. (Only affects APRS.FI from memory)
  2. Preferred MTU on the TNC I believe needs to be set to 527.
  3. Flags on the KTS TX characteristic needs to be WRITE WITHOUT RESPONSE. Using plain WRITE does not work with either app.

Might be useful to document this. 1 &3 are critical, 2 I’m not sure anymore, it was a long journey to get to this point!

richonguzman commented 11 months ago

hi, I need some help when writing from TNC to iPhone over BLE:

I believe I have a working AX25 packet, build with the aprs packet I received and all encapsulated in kiss

is there something special missing for the app to acknowledge the packet?

PS: I got good reception on the TNC from the phone over BLE so this Rx on the phone is missing.