The code in #12 does not compile, and gives a crap about failing sends.
You are using quite some RAM (1854 (72%) 706 remaining),
without any buffers that the Network layer will allocate and use.
It should be enough, but you could free more
by using F() to put constant strings in prints to PROGMEM.
As an example, change Serial.print(" nCurrThruResistorPP= "); to
Serial.print(F(" nCurrThruResistorPP= ")); and free 23 bytes of RAM.
This works for lcd.print(); likewise.
//********Read level from DP sensor************
rawDp = analogRead(dpPort);
delay (1000);
You delay loop for a second, and expect the Network layer to work?
payload_t payload = { packets_sent++, Irms, flowRateLPM, Pdisch, DpFilter, Pinlet, lampCurrent, rawDp, flapState }; // Create a variable with the above structure
Your wishfull thinking does not help, this will only initialize the payload structure,
so all of your messages were always 1 packet sent and zero values, not so useful.
And the
//??? radio.setRetries(15,15); // (delay, count) added on rev 5 disbled,needs setAutoAck = true
radio.setAutoAck(false); // active on rev 3 April 2023
cripples the packet layer, and is very counterproductive.