I was testing the LMIC_low_power library versus the MCCI_LoRaWAN_LMIC library for downlinks.
Test environement was a TTIG with no other users, circa 10m away, its in the Shed, the nodes are in the house. Signals @ SF7BW125 are typically SNR 7, RSSI -75.
Average for both LMIC versions seems to be around one downlink every 10 uplinks, the MCCI_LoRaWAN_LMIC_library has been running longest, 47 downlinks in 492 uplinks.
So 1 in 10 downlinks, seems to be a feature of LMIC ?
There are also other factors (config of library) which increases/deceases the amount of downlinks.
For example the settings LMIC_setAdrMode() and LMIC_setLinkCheckMode() in LMIC. The count of downlinks are higher when the node has recently joined the network for ADR purpose.
This information could be outdated, but according to my research about 1 1/2 years ago, setting LMIC_setLinkCheckMode to disabled, will break ADR and causes many downlinks.
With LMIC_setLinkCheckMode(1) and LMIC_setAdrMode(1) I saw about 1 downlink every 20 uplinks. If you’re interested, you can check my findings here: V3 with ADR violating the fair use policy?
On loriot.io, I see much less downlinks, approx. one downlink every 70 uplinks, so I guess, the network server also has a direct impact on the downlink count.