CHANNEL FIFTEEN· the Earshot field manual

CHAPTER 12 / 12  ·  CH.15 FIELD MANUAL

Glossary and credits

12 · Glossary and credits

Glossary

TermMeaning
A2DPAdvanced Audio Distribution Profile: stereo music over Bluetooth Classic.
ACKAcknowledgement: a message saying “I got yours”.
ACLAsynchronous connection-less link: Bluetooth Classic’s data link.
ADC / DACAnalogue-to-digital / digital-to-analogue converter.
AFHAdaptive frequency hopping: dropping bad channels from the hop list.
ANCActive noise cancelling.
AVRCPRemote-control profile: play, pause, volume.
BD_ADDRA Bluetooth device’s 48-bit address.
Big- / little-endianMost- / least-significant byte first.
Bit maskA byte whose individual bits carry separate meanings.
BLEBluetooth Low Energy.
Byte stuffingEscaping marker bytes that appear inside a frame’s body.
CapabilitiesEarshot’s description of what a model can do.
Central / peripheralThe device that runs a piconet’s clock, and the ones that follow it.
CIDL2CAP channel identifier.
CodecAudio compressor and decompressor: SBC, AAC, LDAC, LHDC.
CRCCyclic redundancy check: the remainder of a polynomial division, used to detect errors.
DLCIRFCOMM’s channel address inside a session.
DriverIn Earshot, one brand family’s protocol implementation.
DSPDigital signal processor: the maths engine for audio.
EDREnhanced Data Rate: Bluetooth’s 2–3 Mbit/s modes.
EventIn Earshot, a brand-neutral fact reported by a driver.
FCSFrame check sequence: a frame’s checksum.
FirmwareThe software running inside the buds.
FlashMemory that keeps its contents without power; where settings live.
FrameOne complete message on the wire, with its markers and lengths.
GATTBLE’s attribute protocol, the alternative to RFCOMM on many newer devices.
GFSKGaussian frequency-shift keying, Bluetooth’s basic modulation.
Hall sensorA chip that senses a magnetic field: lid open or closed.
HCIHost Controller Interface, between the OS and the Bluetooth chip.
HexBase 16; two digits per byte.
HFPHands-Free Profile, for calls.
IntentIn Earshot, a brand-neutral request like “set ANC deep”.
IOBluetoothApple’s Bluetooth Classic framework for macOS.
ISM bandLicence-free radio spectrum, including 2.4 GHz.
L2CAPLogical channels and segmentation over an ACL link.
LEB128Variable-length integer encoding, 7 bits per byte.
LMPLink Manager Protocol, between two Bluetooth chips.
MultipointConnected to two devices at once (“dual device”).
NyquistSample at more than twice the highest frequency you want to keep.
OPOOur name for the realme / OPPO / OnePlus control protocol.
Optimistic UIShowing a change before it’s confirmed, rolling back on failure.
PayloadThe part of a message that carries the content, after the headers.
PiconetOne central and up to seven active peripherals.
PMICPower-management IC.
Pogo pinsSpring-loaded contacts for charging.
ProfileA standard use of the stack (A2DP, HFP…); in Earshot, also a brand’s matching rules.
PushA message the device sends without being asked.
RFCOMMSerial-port emulation over L2CAP; up to 30 channels.
SDPService Discovery Protocol: a device’s table of contents.
SeqSequence number.
SoCSystem-on-chip: radio, CPU, DSP and memory on one die.
SPPSerial Port Profile.
Supersede keyEarshot’s “which setting” key, so only the newest request per setting is sent.
TCCmacOS privacy permissions (Transparency, Consent and Control).
TWSTrue wireless stereo: two independent buds.
UUIDA 128-bit identifier; Bluetooth’s short 16-bit ones expand from a base UUID.
WhiteningScrambling bits before transmission to avoid long runs.

Where to go next

  • Read Earshot’s code: start at Sources/EarshotCore/Driver.swift, then OPO/OPODriver.swift, then Sources/Earshot/BudsLink.swift.
  • Run the tests: ./scripts/test.sh.
  • Own beta buds? Settings → Report → Save, then open a Buds report issue on github.com/srivtx/earshot.
  • Rebuild this manual’s artwork:
    • tools/earbud_blender.py and tools/parts_blender.py (in Blender);
    • python3 tools/build_figures.py.

Credits

Thank you

  • Gadgetbridge: the open Android project whose protocol work made the OPO, Sony, Nothing and soundcore drivers possible.
  • GalaxyBudsClient: Samsung’s message layouts and captured status frames.
  • The OnePlus Buds write-up by Aasheesh: proof that the OPO family could be spoken to from a computer.
  • The realme Buds Air 7, which patiently answered every question.

Earshot and this manual were made by srivtx with Claude.

↗
scroll or pinch to zoom · drag to move · ← → to page · esc to close
↑↓ move↵ open