  High frame-corruption is widely observed in Long Range Wide Area Networks
(LoRaWAN) due to the coexistence with other networks in ISM bands and an
Aloha-like MAC layer. LoRa's Forward Error Correction (FEC) mechanism is often
insufficient to retrieve corrupted data. In fact, real-life measurements show
that at least one-fourth of received transmissions are corrupted. When more
frames are dropped, LoRa nodes usually switch over to higher spreading factors
(SF), thus increasing transmission times and increasing the required energy.
This paper introduces ReDCoS, a novel coding technique at the application layer
that improves recovery of corrupted LoRa frames, thus reducing the overall
transmission time and energy invested by LoRa nodes by several-fold. ReDCoS
utilizes lightweight coding techniques to pre-encode the transmitted data.
Therefore, the inbuilt Cyclic Redundancy Check (CRC) that follows is computed
based on an already encoded data. At the receiver, we use both the CRC and the
coded data to recover data from a corrupted frame beyond the built-in Error
Correcting Code (ECC). We compare the performance of ReDCoS to (I) the standard
FEC of vanilla-LoRaWAN, and to (ii) RS coding applied as ECC to the data of
LoRaWAN. The results indicated a 54x and 13.5x improvement of decoding ratio,
respectively, when 20 data symbols were sent. Furthermore, we evaluated ReDCoS
on-field using LoRa SX1261 transceivers showing that it outperformed RS-coding
by factor of at least 2x (and up to 6x) in terms of the decoding ratio while
consuming 38.5% less energy per correctly received transmission.
