Source: docs/glossary.md
Glossary
| Term | Plain-English meaning |
|---|---|
| ADR (Adaptive Data Rate) | The network tells each device which data rate to use, based on how well it's heard. Close tags go faster and save battery; distant tags go slower and reach further |
| Airtime | How long one transmission occupies the radio channel. Longer airtime costs more energy, and is limited by duty and fair-use rules |
| Approach rate | How fast the animal's distance to the fence is shrinking (m/s), fitted over the last 30 s of fixes. Positive means closing |
| Breach | The tag is confident the animal is outside the fence: more than 3 m out, or more than the GPS accuracy estimate if that's larger |
| Class A | The default, lowest-power LoRaWAN device mode. The device can only receive in two short windows right after it transmits, so downlinks wait for the next uplink |
| Cue / cue burst | A short sound pattern from the tag's piezo (2 s by default) |
| Cue episode | One stretch in the warning zone. Cues stop after 10 bursts, and the tag reports cue_ignored |
| Degraded fix | A GPS position whose accuracy estimate is worse than 8 m. The tag never cues on one |
| Downlink / uplink | Message to the tag / from the tag |
| DR (Data Rate) | LoRaWAN speed setting. In US915, DR0 is the slowest and longest-range uplink (max 11-byte payload); DR8 and up are downlink rates (RX2 defaults to DR8, max 53 bytes) |
| DevEUI / JoinEUI / AppKey | A device's unique id, the id of the join server, and the secret key used to join the network. Set in secrets.h |
| FCC equipment authorization | US approval required to sell a radio transmitter. Not needed for prototypes used for development, but needed for a product |
| FPort | A number on each LoRaWAN message that says what kind of payload it is. HerdTag uses 1 for position reports and 2 for fence fragments |
| FSB2 (frequency sub-band 2) | US915 has 64+8 uplink channels; gateways usually listen on 8 of them. Sub-band 2 (channels 8–15, plus 65) is what TTN uses. Tag, gateway and network server must agree |
| FTO (freedom to operate) | A legal review of whether a product can be made and sold without infringing someone else's patents |
| Gateway | The farm's radio receiver/transmitter. It relays LoRa packets between tags and the network server over the internet |
| Geofence / virtual fence | A boundary defined by coordinates instead of wire. Here, a polygon of 3–32 corners |
| GNSS / GPS | Satellite positioning. GPS is the US system; GNSS covers all of them (GPS, Galileo, GLONASS, BeiDou). The tag's receiver uses several |
| Golden vectors | Recorded inputs and expected outputs from the Python reference, replayed against the C code to prove both behave the same |
| h_acc (horizontal accuracy) | The GPS receiver's own estimate of its position error, in metres. The controller uses it to reject bad fixes and widen the breach margin |
| HDOP | Horizontal dilution of precision: how good the satellite geometry is. Lower is better. Some receivers give HDOP but not h_acc; then h_acc ≈ HDOP × ~5 m, rounded up |
| Heartbeat | The routine uplink every 15 minutes, sent even when nothing has happened |
| Hysteresis | Using a different threshold to leave a state than to enter it, so the state doesn't flicker. Breach starts 3 m outside and clears 5 m inside |
| LoRa / LoRaWAN | LoRa is a long-range, low-power radio technique. LoRaWAN is the network protocol on top of it (devices, gateways, network server) |
| Near zone | 20–50 m inside the boundary. No cues, but faster GPS sampling |
| OTAA (Over-The-Air Activation) | How a device joins a LoRaWAN network: it sends a join request with its DevEUI, and gets session keys back. Preferred over hard-coded keys (ABP) |
| Piezo transducer | A small sealed speaker element. Driven with a PWM tone from the microcontroller through a MOSFET |
| PPK2 | Nordic Power Profiler Kit II. Measures a device's current draw over time, to replace the guessed numbers in the energy model |
| RSSI / SNR | Received signal strength (dBm; −120 is weak, −60 strong) and signal-to-noise ratio (dB; LoRa still works below 0). Reported by the gateway for each uplink |
| RX1 / RX2 | The two receive windows after a Class A uplink. RX2 uses a fixed, slow data rate (DR8 in US915) |
| Signed distance | Distance from the animal to the nearest fence edge: positive inside, negative outside |
| Time-to-zone sampling | Scheduling the next GPS fix from how soon a fast-walking cow could reach the warning zone, so the tag has enough fixes to see the trend in time |
| TTN / TTS | The Things Network / The Things Stack: a LoRaWAN network server. The free "Sandbox" (community) tier is enough for prototypes |
| US915 | The LoRaWAN frequency plan for the US (902–928 MHz). Hardware must be the US915 variant |
| Warning zone | The band 0–20 m inside the boundary where the tag cues an animal that's walking toward the fence |
| Webhook | TTS calls our server's URL with a JSON body for every uplink |