getting Lora radio to repeat a value numerous times

I am working on a project where I am sending information over to another Arduino device using 2 Lora radios. One is the transmitter, and the other is a receiver. They each run on 915 MHz, and they work alright. I have an antenna attached to both as well to boost communications between them. However, when I attempt to send information over, it only does so once, despite being inside a loop function for both the transmitter code, and the receiver code. I want it to loop multiple times, but I don't exactly know what is stopping me, Can someone please help? The code is posted below here for you to take a look at.
Transmitter Code:

#include <SPI.h>
#include <LoRa.h>
int LED = 4;
int GND = A0;
int counter = 10;

void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(GND, OUTPUT);
digitalWrite(GND, HIGH);
while (!Serial);

Serial.println("LoRa Sender");

if (!LoRa.begin(915E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}

void loop() {
if (counter > 0) {
Serial.print("Sending packet: ");
Serial.println(counter);

// send packet
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
LoRa.beginPacket();
LoRa.print("We have some kind of signal on bus line 1 ");
LoRa.print(counter);
LoRa.endPacket();
counter++;

delay(3000);
}
}


Receiver code:
#include <SPI.h>
#include <LoRa.h>

void setup() {
Serial.begin(9600);
while (!Serial);

Serial.println("LoRa Receiver");

if (!LoRa.begin(915E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}

void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");

// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}

// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}

Why does nobody ever Read this before posting a programming question.

void loop() {
  if (counter > 0) {
  ....
  counter++;

  delay(3000);
}

Nowhere in your loop does counter ever get reset, so it just keeps incrementing. If you're patient, and because of the delay statement, really patient, then counter will reach 65535, then roll over to zero on the next loop. Bypassing your loop forever.

Please edit your post to add code tags, as described in the "How to use this forum" post.

Maybe the software is being sensible and prohibiting illegal overuse of bandwidth. Every 3 seconds sounds like too often.

Compliance

Every radio device must be compliant with the regulated duty cycle limits. This applies to both nodes and gateways.

In practice, this means that you should program your nodes in such a way, that they stay within the limits. The easiest way to do this, is to calculate how much airtime each message consumes using one of the many airtime calculators and use that information to choose a good transmit interval.

Some radio modules (such as the RN2483) also enforce the duty cycle limits. If you exceed the limits, the module will complain with a message no_free_ch. Specifically, the RN2483 limits the duty cycle on a per-channel basis. This means that if you only have 1 channel configured, the module will start enforcing the duty cycle after the first message.

I have an antenna attached to both as well to boost communications between them.

You need the antennas connected all the time, they are not just to be fitted for better operation.

LoRa modules are often damadged if you operate then without antennas.

Please edit your post to add code tags, as described in the "How to use this forum" post.

aarg:
Maybe the software is being sensible and prohibiting illegal overuse of bandwidth. Every 3 seconds sounds like too often.Duty Cycle | The Things Network

The specific LoRa libraries for The Things Network (LMIC etc) do impose duty cycle limits to a degree, which is good.

The OP is apparently using a library called <LoRa.h> and its only a guess, since the actual library in use was not revealed to us, but I suspect the libray used does not impose duty cycle limitations.