Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

SX1276 in FSK mode: what AFC, AGC, RSSI and FEI do, and why my links fail on cold mornings

SX1276 in FSK mode: what AFC, AGC, RSSI and FEI do, and why my links fail on cold mornings

Résolu 7 7

Point-to-point FSK links for soil moisture probes in orchards, not LoRaWAN, just SX1276 modules (RFM95 boards) in FSK mode at 868.3 MHz, 4.8 kbps, ±5 kHz deviation, RxBw set to 10.4 kHz. The receiver sits on a mast and forwards to a Pi that reports each probe to Hermetry as a child.

Works all day. On cold mornings (below about 3 °C) a few probes drop out completely until it warms up. I read about AFC, AGC, RSSI and FEI in the datasheet and only half follow it. What do they each do in RX, and which one should I be turning on? Right now RegRxConfig is 0x0E, which I copied from an example.

Timestamps in UTC or it didn't happen.
♥ 0

Following. I’ve never touched FSK mode at all.

If it isn't logged, it didn't happen.
♥ 0

Is this the same radio as LoRa? I thought the RFM95 was LoRa only.

♥ 1

Same chip does both, the mode is a register setting. Why would cold matter though, the distance doesn’t change?

Timestamps in UTC or it didn't happen.
♥ 2

Aoife’s question is the right one. Cold moves the crystals.

The four in RX:

RSSI is how strong the received signal is, read from RegRssiValue (0x11), value / 2 as negative dBm. AGC picks the LNA gain from that so strong signals don’t saturate the receiver; your 0x0E already has AgcAutoOn (bit 3) set, leave it. FEI (frequency error indicator, RegFeiMsb/Lsb 0x1D/0x1E) measures how far the incoming carrier is from where the receiver expects it. AFC uses that measurement to retune the receiver onto the signal, at the start of a packet if AfcAutoOn (bit 4) is set. Yours is off.

A plain crystal is good for maybe ±10 to 20 ppm, and drifts with temperature. At 868 MHz, 20 ppm is about 17 kHz. Probe and receiver drift differently on a cold morning, and once the offset plus your deviation falls outside a 10.4 kHz receive bandwidth, the packet is gone. That’s your dropouts.

RegRxConfig (0x0D) = 0x1E   // AfcAutoOn + AgcAutoOn + preamble detect trigger
RegAfcBw   (0x13)  = wide enough to catch the offset before AFC (e.g. 41.7 kHz)
RegRxBw    (0x12)  = 20.8 kHz after AFC
// or simply widen RxBw if you don't want AFC

Then send the FEI and RSSI of each probe as values next to the moisture reading. In Hermetry a chart of FEI against air temperature shows you which probes drift; ours showed 11 kHz swings on two units before we changed anything.

Timestamps in UTC or it didn't happen.
Solution acceptée♥ 7

TCXO modules exist for exactly this if a probe still misbehaves.

♥ 2

And they cost a few dollars more per node, worth it only for the worst ones.

Ground loops are my cardio.
♥ 0

AfcAutoOn on, AfcBw at 41.7 kHz. This week had three mornings at -1 °C and no dropouts. The FEI chart is a nice touch, one probe swings 13 kHz, it gets a TCXO board.

Timestamps in UTC or it didn't happen.
♥ 0
8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager