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.
- 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)
- Preferred MTU on the TNC I believe needs to be set to 527.
- 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!
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.
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!