Archived source flow
Technical notes
Acquisition and radio roles
The sender reads the TFmini API through a hardware serial port, accepts positive readings below its upper limit and transmits a uint16_t distance using RF24. The receiver uses an OLED interface with sprint, lap and count menus, buttons and EEPROM-backed settings. It is RF24 code, not a BLE implementation.
Selected manual-sprint path
A manual Start action sets the timing flag. hasData() reads an available radio payload into an int and checks it against an EEPROM-derived threshold. Its caller then reads the radio a second time before stopping the timing flag. No packet is handed back by the helper, so that extra read is not a second validated measurement.
Timing and implementation limits
The display digits advance behind a 92 ms gate, with display work and mode-dependent delays; this is not established stopwatch precision. Sender uint16_t and receiver int payload sizes depend on board/toolchain compatibility. Some menu states lack corresponding timing branches, and no compiled cross-board build or physical start/finish timing test is verified.