Link and Throughput

The converters on this board are considerably faster than the path that carries their results to you. The 16-bit SAR converts at about 4.6 kSa/s and the internal ADC at up to 77 kSa/s, but the UART between the microcontroller and the HM-10 module runs at 115200 baud, and that is what you actually get:

Sample formatThroughput
ASCII sample lines (default)~1.1 kSa/s
Compact binary~3.5 kSa/s

Both figures are below the internal ADC’s conversion rate, and the slower one is below the SAR’s. No choice of acquisition path will make captures faster than this table allows. The sample format is the only control that moves the number.

The link rate is fixed at 115200 and cannot be changed from the board or over BLE. The module's own rate is only reachable over a direct UART connection from external hardware, so there is nothing to tune here.

Capture format tiers

The default format sends each sample as a human-readable ASCII line. It is robust, easy to debug from a terminal, and slow — a variable-length text line costs far more link time than the sample it carries.

The compact binary format replaces that with a fixed-length frame per sample and trades resolution for speed. On the SAR path it also shortens the conversion itself by asking fewer questions, so it is faster at both ends of the chain, not just on the wire.

TierWhat you get
Full precision (default)Full converter resolution, ASCII sample lines
Compact binaryReduced resolution, fixed-length binary frames, roughly 4× the sample rate
AUTOPicks the highest precision that can still finish the requested burst inside the timeout

AUTO is the sensible default for exploratory work. Ask for a small burst and you keep full precision; ask for a large one and it steps down rather than letting the capture time out.

Note that the binary tier only applies to streaming captures. A single-sample request always replies in full-precision ASCII — there is nothing to gain from framing one value.

Integrity of a binary burst

BLE’s own link layer already checksums and retransmits at the air interface, so a corrupted byte is not the realistic risk. A dropped byte between the microcontroller and the BLE module is, and it would silently shift every subsequent frame boundary with no other symptom. A burst therefore ends with a trailer that lets the client verify the whole burst arrived intact — one extra byte per burst regardless of burst size, rather than a per-sample tax on exactly the tier that exists to be fast.

Reducing capture time

There are only two controls, in order of how much they help:

  1. Ask for fewer samples. Burst time is linear in sample count.
  2. Use the compact binary format, or AUTO. Roughly 3× over ASCII.

At ~3.5 kSa/s the link is in the same order of magnitude as the SAR’s own conversion rate. It is still the limiting factor, but it stops being the overwhelming one.

Updated · Full project report (PDF)