diff --git a/Firmware/LoRaSerial/Arch_SAMD.h b/Firmware/LoRaSerial/Arch_SAMD.h index 841a277a..b391b4e6 100644 --- a/Firmware/LoRaSerial/Arch_SAMD.h +++ b/Firmware/LoRaSerial/Arch_SAMD.h @@ -77,12 +77,12 @@ void samdBeginBoard() pin_rst = 6; pin_cts = 30; pin_rts = 38; - pin_txLED = 31; - pin_rxLED = A5; - pin_rssi1LED = A3; - pin_rssi2LED = A4; - pin_rssi3LED = 8; - pin_rssi4LED = 9; + pin_blue_LED = 31; + pin_yellow_LED = A5; + pin_green_1_LED = A3; + pin_green_2_LED = A4; + pin_green_3_LED = 8; + pin_green_4_LED = 9; pin_trainButton = 4; @@ -96,19 +96,19 @@ void samdBeginBoard() pinMode(pin_cts, INPUT_PULLUP); //LEDs - pinMode(pin_rssi1LED, OUTPUT); - digitalWrite(pin_rssi1LED, LOW); - pinMode(pin_rssi2LED, OUTPUT); - digitalWrite(pin_rssi2LED, LOW); - pinMode(pin_rssi3LED, OUTPUT); - digitalWrite(pin_rssi3LED, LOW); - pinMode(pin_rssi4LED, OUTPUT); - digitalWrite(pin_rssi4LED, LOW); - - pinMode(pin_txLED, OUTPUT); - digitalWrite(pin_txLED, LOW); - pinMode(pin_rxLED, OUTPUT); - digitalWrite(pin_rxLED, LOW); + pinMode(pin_green_1_LED, OUTPUT); + digitalWrite(pin_green_1_LED, LOW); + pinMode(pin_green_2_LED, OUTPUT); + digitalWrite(pin_green_2_LED, LOW); + pinMode(pin_green_3_LED, OUTPUT); + digitalWrite(pin_green_3_LED, LOW); + pinMode(pin_green_4_LED, OUTPUT); + digitalWrite(pin_green_4_LED, LOW); + + pinMode(pin_blue_LED, OUTPUT); + digitalWrite(pin_blue_LED, LOW); + pinMode(pin_yellow_LED, OUTPUT); + digitalWrite(pin_yellow_LED, LOW); //Train button input pinMode(pin_trainButton, INPUT_PULLUP); diff --git a/Firmware/LoRaSerial/LoRaSerial.ino b/Firmware/LoRaSerial/LoRaSerial.ino index c56a67c0..ec6e6e66 100644 --- a/Firmware/LoRaSerial/LoRaSerial.ino +++ b/Firmware/LoRaSerial/LoRaSerial.ino @@ -97,39 +97,42 @@ uint8_t pin_dio0 = PIN_UNDEFINED; uint8_t pin_dio1 = PIN_UNDEFINED; uint8_t pin_rts = PIN_UNDEFINED; uint8_t pin_cts = PIN_UNDEFINED; -uint8_t pin_txLED = PIN_UNDEFINED; -uint8_t pin_rxLED = PIN_UNDEFINED; +uint8_t pin_blue_LED = PIN_UNDEFINED; +uint8_t pin_yellow_LED = PIN_UNDEFINED; uint8_t pin_trainButton = PIN_UNDEFINED; -uint8_t pin_rssi1LED = PIN_UNDEFINED; -uint8_t pin_rssi2LED = PIN_UNDEFINED; -uint8_t pin_rssi3LED = PIN_UNDEFINED; -uint8_t pin_rssi4LED = PIN_UNDEFINED; +uint8_t pin_green_1_LED = PIN_UNDEFINED; +uint8_t pin_green_2_LED = PIN_UNDEFINED; +uint8_t pin_green_3_LED = PIN_UNDEFINED; +uint8_t pin_green_4_LED = PIN_UNDEFINED; uint8_t pin_boardID = PIN_UNDEFINED; uint8_t pin_trigger = PIN_UNDEFINED; uint8_t pin_hop_timer = PIN_UNDEFINED; -#define GREEN_LED_1 pin_rssi1LED -#define GREEN_LED_2 pin_rssi2LED -#define GREEN_LED_3 pin_rssi3LED -#define GREEN_LED_4 pin_rssi4LED -#define BLUE_LED pin_txLED -#define YELLOW_LED pin_rxLED - -#define RADIO_USE_BLINK_MILLIS 15 - -#define RADIO_USE_RX_DATA_LED GREEN_LED_1 //Green -#define RADIO_USE_LINK_LED GREEN_LED_2 //Green -#define RADIO_USE_RSSI_LED GREEN_LED_3 //Green -#define RADIO_USE_TX_DATA_LED GREEN_LED_4 //Green -#define RADIO_USE_BAD_FRAMES_LED BLUE_LED //Blue -#define RADIO_USE_BAD_CRC_LED YELLOW_LED //Yellow +/* + Antenna Qwiic + +---------------------------+ + | | + | G4 G3 G2 G1 | + | | + | | + | Red | + | | + | | + | Blue Yellow | + | | + +---------------------------+ + USB Serial +*/ -#define LED_MP_HEARTBEAT BLUE_LED -#define LED_MP_HOP_CHANNEL YELLOW_LED +#define GREEN_LED_1 pin_green_1_LED //Top right +#define GREEN_LED_2 pin_green_2_LED +#define GREEN_LED_3 pin_green_3_LED +#define GREEN_LED_4 pin_green_4_LED //Top left +#define BLUE_LED pin_blue_LED +#define YELLOW_LED pin_yellow_LED //Bottom right -#define CYLON_TX_DATA_LED BLUE_LED -#define CYLON_RX_DATA_LED YELLOW_LED +#define RADIO_USE_BLINK_MILLIS 15 #define LED_ON HIGH #define LED_OFF LOW diff --git a/Firmware/LoRaSerial/System.ino b/Firmware/LoRaSerial/System.ino index 7daf84b4..607f7650 100644 --- a/Firmware/LoRaSerial/System.ino +++ b/Firmware/LoRaSerial/System.ino @@ -578,24 +578,24 @@ void dumpCircularBuffer(uint8_t * buffer, uint16_t tail, uint16_t bufferLength, void setRSSI(uint8_t ledBits) { if (ledBits & 0b0001) - digitalWrite(pin_rssi1LED, HIGH); + digitalWrite(pin_green_1_LED, HIGH); else - digitalWrite(pin_rssi1LED, LOW); + digitalWrite(pin_green_1_LED, LOW); if (ledBits & 0b0010) - digitalWrite(pin_rssi2LED, HIGH); + digitalWrite(pin_green_2_LED, HIGH); else - digitalWrite(pin_rssi2LED, LOW); + digitalWrite(pin_green_2_LED, LOW); if (ledBits & 0b0100) - digitalWrite(pin_rssi3LED, HIGH); + digitalWrite(pin_green_3_LED, HIGH); else - digitalWrite(pin_rssi3LED, LOW); + digitalWrite(pin_green_3_LED, LOW); if (ledBits & 0b1000) - digitalWrite(pin_rssi4LED, HIGH); + digitalWrite(pin_green_4_LED, HIGH); else - digitalWrite(pin_rssi4LED, LOW); + digitalWrite(pin_green_4_LED, LOW); } //Start the cylon LEDs @@ -664,12 +664,12 @@ void blinkRadioRssiLed() //The RSSI value ranges from -164 to 30 dB ledRssiPulseWidth = (150 + rssi) / 10; if (ledRssiPulseWidth > 0) - digitalWrite(RADIO_USE_RSSI_LED, LED_ON); + digitalWrite(GREEN_LED_3, LED_ON); } //Check for time to turn off the LED else if ((currentMillis - ledPreviousRssiMillis) >= ledRssiPulseWidth) - digitalWrite(RADIO_USE_RSSI_LED, LED_OFF); + digitalWrite(GREEN_LED_3, LED_OFF); break; //Update the 4 green LEDs based upon the RSSI value @@ -694,12 +694,12 @@ void blinkSerialTxLed(bool illuminate) switch (settings.selectLedUse) { case LEDS_RSSI: - if (pin_txLED != PIN_UNDEFINED) + if (pin_blue_LED != PIN_UNDEFINED) { if (illuminate == true) - digitalWrite(pin_txLED, HIGH); + digitalWrite(pin_blue_LED, HIGH); else - digitalWrite(pin_txLED, LOW); + digitalWrite(pin_blue_LED, LOW); } break; } @@ -712,16 +712,16 @@ void blinkSerialRxLed(bool illuminate) { case LEDS_RSSI: if (illuminate == true) - digitalWrite(pin_rxLED, HIGH); + digitalWrite(pin_yellow_LED, HIGH); else - digitalWrite(pin_rxLED, LOW); + digitalWrite(pin_yellow_LED, LOW); break; case LEDS_VC: if (illuminate == true) - digitalWrite(RADIO_USE_LINK_LED, HIGH); + digitalWrite(GREEN_LED_2, HIGH); else - digitalWrite(RADIO_USE_LINK_LED, LOW); + digitalWrite(GREEN_LED_2, LOW); break; } } @@ -733,9 +733,9 @@ void blinkRadioRxLed(bool on) { case LEDS_CYLON: if (on) - digitalWrite(CYLON_RX_DATA_LED, LED_ON); + digitalWrite(YELLOW_LED, LED_ON); else if ((millis() - linkDownTimer) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(CYLON_RX_DATA_LED, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); break; case LEDS_MULTIPOINT: @@ -743,9 +743,9 @@ void blinkRadioRxLed(bool on) case LEDS_RADIO_USE: case LEDS_VC: if (on) - digitalWrite(RADIO_USE_RX_DATA_LED, LED_ON); + digitalWrite(GREEN_LED_1, LED_ON); else if ((millis() - linkDownTimer) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(RADIO_USE_RX_DATA_LED, LED_OFF); + digitalWrite(GREEN_LED_1, LED_OFF); break; } } @@ -757,9 +757,9 @@ void blinkRadioTxLed(bool on) { case LEDS_CYLON: if (on) - digitalWrite(CYLON_TX_DATA_LED, LED_ON); + digitalWrite(BLUE_LED, LED_ON); else if ((millis() - datagramTimer) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(CYLON_TX_DATA_LED, LED_OFF); + digitalWrite(BLUE_LED, LED_OFF); break; case LEDS_MULTIPOINT: @@ -767,9 +767,9 @@ void blinkRadioTxLed(bool on) case LEDS_RADIO_USE: case LEDS_VC: if (on) - digitalWrite(RADIO_USE_TX_DATA_LED, LED_ON); + digitalWrite(GREEN_LED_4, LED_ON); else if ((millis() - datagramTimer) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(RADIO_USE_TX_DATA_LED, LED_OFF); + digitalWrite(GREEN_LED_4, LED_OFF); break; } } @@ -796,7 +796,7 @@ void radioLeds() blinkRadioTxLed(false); //Update the link LED - digitalWrite(RADIO_USE_LINK_LED, isLinked() ? LED_ON : LED_OFF); + digitalWrite(GREEN_LED_2, isLinked() ? LED_ON : LED_OFF); //Update the RSSI LED blinkRadioRssiLed(); @@ -807,12 +807,12 @@ void radioLeds() { previousBadFrames = badFrames; badFramesMillis = currentMillis; - digitalWrite(RADIO_USE_BAD_FRAMES_LED, LED_ON); + digitalWrite(BLUE_LED, LED_ON); } else if (badFramesMillis && ((currentMillis - badFramesMillis) >= RADIO_USE_BLINK_MILLIS)) { badFramesMillis = 0; - digitalWrite(RADIO_USE_BAD_FRAMES_LED, LED_OFF); + digitalWrite(BLUE_LED, LED_OFF); } //Blink the bad CRC or duplicate frames LED @@ -820,18 +820,18 @@ void radioLeds() { previousBadCrc = badCrc; badCrcMillis = currentMillis; - digitalWrite(RADIO_USE_BAD_CRC_LED, LED_ON); + digitalWrite(YELLOW_LED, LED_ON); } if ((!settings.enableCRC16) && (duplicateFrames != previousBadCrc)) { previousBadCrc = duplicateFrames; badCrcMillis = currentMillis; - digitalWrite(RADIO_USE_BAD_CRC_LED, LED_ON); + digitalWrite(YELLOW_LED, LED_ON); } else if (badCrcMillis && ((currentMillis - badCrcMillis) >= RADIO_USE_BLINK_MILLIS)) { badCrcMillis = 0; - digitalWrite(RADIO_USE_BAD_CRC_LED, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); } } @@ -847,11 +847,11 @@ void blinkHeartbeatLed(bool on) case LEDS_VC: if (on) { - digitalWrite(LED_MP_HEARTBEAT, LED_ON); + digitalWrite(BLUE_LED, LED_ON); ledHeartbeatMillis = millis(); } else if ((millis() - ledHeartbeatMillis) > RADIO_USE_BLINK_MILLIS) - digitalWrite(LED_MP_HEARTBEAT, LED_OFF); + digitalWrite(BLUE_LED, LED_OFF); break; } } @@ -865,9 +865,9 @@ void blinkChannelHopLed(bool on) case LEDS_P2P: case LEDS_VC: if (on) - digitalWrite(LED_MP_HOP_CHANNEL, LED_ON); + digitalWrite(YELLOW_LED, LED_ON); else if ((millis() - radioCallHistory[RADIO_CALL_hopChannel]) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(LED_MP_HOP_CHANNEL, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); break; } } @@ -914,14 +914,14 @@ void multiPointLeds() blinkRadioTxLed(false); //Update the sync LED - digitalWrite(RADIO_USE_LINK_LED, isMultiPointSync() ? LED_ON : LED_OFF); + digitalWrite(GREEN_LED_2, isMultiPointSync() ? LED_ON : LED_OFF); //Update the RSSI LED blinkRadioRssiLed(); //Update the hop LED if ((millis() - radioCallHistory[RADIO_CALL_hopChannel]) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(LED_MP_HOP_CHANNEL, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); //Update the HEARTBEAT LED blinkHeartbeatLed(false); @@ -942,7 +942,7 @@ void p2pLeds() //Update the hop LED if ((millis() - radioCallHistory[RADIO_CALL_hopChannel]) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(LED_MP_HOP_CHANNEL, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); //Update the HEARTBEAT LED blinkHeartbeatLed(false); @@ -969,15 +969,15 @@ void vcLeds() //Turn on the RSSI LED else if (((currentMillis - blinkSyncMillis) >= (VC_SYNC_BLINK_RATE >> 1)) - && (digitalRead(RADIO_USE_RSSI_LED) == LED_OFF)) - digitalWrite(RADIO_USE_RSSI_LED, LED_ON); + && (digitalRead(GREEN_LED_3) == LED_OFF)) + digitalWrite(GREEN_LED_3, LED_ON); //Turn off the RSSI LED else if ((!virtualCircuitList[VC_SERVER].vcState) && (((currentMillis - blinkSyncMillis) >= VC_SYNC_BLINK_RATE)) - && (digitalRead(RADIO_USE_RSSI_LED) == LED_ON)) + && (digitalRead(GREEN_LED_3) == LED_ON)) { - digitalWrite(RADIO_USE_RSSI_LED, LED_OFF); + digitalWrite(GREEN_LED_3, LED_OFF); blinkSyncMillis = currentMillis; } @@ -985,7 +985,7 @@ void vcLeds() //Update the hop LED if ((millis() - radioCallHistory[RADIO_CALL_hopChannel]) >= RADIO_USE_BLINK_MILLIS) - digitalWrite(LED_MP_HOP_CHANNEL, LED_OFF); + digitalWrite(YELLOW_LED, LED_OFF); //Update the HEARTBEAT LED blinkHeartbeatLed(false);