forked from iarv/LoRa_APRS_iGate
Compare commits
14 Commits
V3.1.5.1
...
decodingFi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff8c7581fa | ||
|
|
449a8557d2 | ||
|
|
4419c98920 | ||
|
|
45bf90817b | ||
|
|
ef30a1bf58 | ||
|
|
9a705d3dfa | ||
|
|
63f74396d2 | ||
|
|
400b77c2d3 | ||
|
|
31daddf917 | ||
|
|
529a44018f | ||
|
|
5ba9c5b382 | ||
|
|
c7a0e3773b | ||
|
|
a5f9e5b844 | ||
|
|
24f407d51c |
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -71,6 +71,10 @@ jobs:
|
||||
chip: esp32c3
|
||||
- name: heltec_wireless_paper_v1
|
||||
chip: esp32s3
|
||||
- name: heltec_wireless_paper_v1_2
|
||||
chip: esp32s3
|
||||
- name: heltec_vision_master_e290
|
||||
chip: esp32s3
|
||||
- name: OE5HWN_MeshCom
|
||||
chip: esp32
|
||||
- name: WEMOS-LOLIN32-OLED-DIY
|
||||
|
||||
@@ -51,6 +51,8 @@ ____________________________________________________
|
||||
<br />
|
||||
|
||||
# Timeline (Versions):
|
||||
- 2025-12-22 Heltec Wireless Paper V1.2 and VisionMaster E290 Added. Thanks HA5SZI.
|
||||
- 2025-12-18 TCXO and packet decoding updates.
|
||||
- 2025-12-01 APRSPacketLib updates, AHT20 sensor added, INA219 support added.
|
||||
- 2025-10-15 APRS Bridge for TNC added.
|
||||
- 2025-10-13 Rx and Tx Frequencies are now with fully configurable.
|
||||
|
||||
@@ -67,8 +67,8 @@ ___________________________________________________________________*/
|
||||
#endif
|
||||
|
||||
|
||||
String versionDate = "2025-12-11";
|
||||
String versionNumber = "3.1.5.1";
|
||||
String versionDate = "2025-12-28";
|
||||
String versionNumber = "3.1.6.3";
|
||||
Configuration Config;
|
||||
WiFiClient aprsIsClient;
|
||||
WiFiClient mqttClient;
|
||||
|
||||
@@ -278,8 +278,9 @@ namespace APRS_IS_Utils {
|
||||
if (!passcodeValid && packet.indexOf(Config.callsign) != -1) {
|
||||
if (packet.indexOf("unverified") != -1 ) {
|
||||
Serial.println("\n****APRS PASSCODE NOT VALID****\n");
|
||||
displayShow(firstLine, "", " APRS PASSCODE", " NOT VALID !!!", "", "", "", 0);
|
||||
while (1) {};
|
||||
displayShow(firstLine, "", " APRS PASSCODE", " NOT VALID !!!", "", "", "", 3000);
|
||||
aprsIsClient.stop();
|
||||
Config.aprs_is.active = false;
|
||||
} else if (packet.indexOf("verified") != -1 ) {
|
||||
passcodeValid = true;
|
||||
}
|
||||
|
||||
@@ -290,7 +290,11 @@ bool Configuration::readFile() {
|
||||
if (!data["display"].containsKey("alwaysOn") ||
|
||||
!data["display"].containsKey("timeout") ||
|
||||
!data["display"].containsKey("turn180")) needsRewrite = true;
|
||||
display.alwaysOn = data["display"]["alwaysOn"] | true;
|
||||
#ifdef HAS_EPAPER
|
||||
display.alwaysOn = true;
|
||||
#else
|
||||
display.alwaysOn = data["display"]["alwaysOn"] | true;
|
||||
#endif
|
||||
display.timeout = data["display"]["timeout"] | 4;
|
||||
display.turn180 = data["display"]["turn180"] | false;
|
||||
|
||||
|
||||
@@ -47,9 +47,13 @@
|
||||
#ifdef HELTEC_WP_V1
|
||||
EInkDisplay_WirelessPaperV1_1 display;
|
||||
#endif
|
||||
/*#ifdef HELTEC_WP_V1_2 // SOON!
|
||||
#ifdef HELTEC_WP_V1_2
|
||||
EInkDisplay_WirelessPaperV1_2 display;
|
||||
#endif*/
|
||||
#endif
|
||||
#ifdef HELTEC_VM_E290
|
||||
EInkDisplay_VisionMasterE290 display;
|
||||
#endif
|
||||
|
||||
String lastEpaperText;
|
||||
#else
|
||||
#include <Adafruit_GFX.h>
|
||||
@@ -88,15 +92,22 @@ void displaySetup() {
|
||||
tft.setTextFont(0);
|
||||
tft.fillScreen(TFT_BLACK);
|
||||
#if defined(TTGO_T_DECK_GPS) || defined(TTGO_T_DECK_PLUS)
|
||||
sprite.createSprite(320,240);
|
||||
sprite.createSprite(320, 240);
|
||||
#else
|
||||
sprite.createSprite(160,80);
|
||||
sprite.createSprite(160, 80);
|
||||
#endif
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.landscape();
|
||||
display.printCenter("LoRa APRS iGate Initialising...");
|
||||
if (Config.display.turn180) display.setRotation(2);
|
||||
if (Config.display.turn180) {
|
||||
#if defined(HELTEC_VM_E290) || defined(HELTEC_WP_V1)
|
||||
display.setRotation(3);
|
||||
#endif
|
||||
#if defined(HELTEC_WP_V1_2)
|
||||
display.setRotation(1);
|
||||
#endif
|
||||
}
|
||||
display.update();
|
||||
#else
|
||||
#ifdef OLED_DISPLAY_HAS_RST_PIN
|
||||
@@ -158,7 +169,6 @@ void displayToggle(bool toggle) {
|
||||
digitalWrite(TFT_BL, LOW);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.printCenter("Enabled EPAPER Display...");
|
||||
display.update();
|
||||
#else
|
||||
#if defined(TTGO_T_Beam_S3_SUPREME_V3)
|
||||
@@ -196,7 +206,7 @@ void displayShow(const String& header, const String& line1, const String& line2,
|
||||
sprite.drawString(*lines[i], 3, (lineSpacing * (2 + i)) - 2);
|
||||
}
|
||||
|
||||
sprite.pushSprite(0,0);
|
||||
sprite.pushSprite(0, 0);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
display.clearMemory();
|
||||
@@ -261,7 +271,7 @@ void displayShow(const String& header, const String& line1, const String& line2,
|
||||
sprite.drawString(*lines[i], 3, (lineSpacing * (2 + i)) - 2);
|
||||
}
|
||||
|
||||
sprite.pushSprite(0,0);
|
||||
sprite.pushSprite(0, 0);
|
||||
#else
|
||||
#ifdef HAS_EPAPER
|
||||
lastEpaperText = header + line1 + line2 + line3 + line4 + line5 + line6;
|
||||
|
||||
@@ -138,30 +138,37 @@ namespace GPS_Utils {
|
||||
|
||||
String getDistanceAndComment(const String& packet) {
|
||||
int indexOfAt = packet.indexOf(":@");
|
||||
if (indexOfAt > 10) {
|
||||
return getReceivedGPS(packet);
|
||||
} else {
|
||||
const uint8_t ENCODED_BYTE_OFFSET = 14; // Offset for encoded data in the packet
|
||||
int indexOfExclamation = packet.indexOf(":!");
|
||||
int indexOfEqual = packet.indexOf(":=");
|
||||
uint8_t encodedBytePosition = 0;
|
||||
if (indexOfExclamation > 10) { // Determine the position where encoded data starts
|
||||
encodedBytePosition = indexOfExclamation + ENCODED_BYTE_OFFSET;
|
||||
} else if (indexOfEqual > 10) {
|
||||
encodedBytePosition = indexOfEqual + ENCODED_BYTE_OFFSET;
|
||||
}
|
||||
if (indexOfAt > 10) return getReceivedGPS(packet);
|
||||
|
||||
if (encodedBytePosition != 0) {
|
||||
char currentChar = packet[encodedBytePosition];
|
||||
if (currentChar == 'G' || currentChar == 'Q' || currentChar == '[' || currentChar == 'H' || currentChar == 'X') {
|
||||
return decodeEncodedGPS(packet); // If valid encoded data position is found, decode it
|
||||
} else {
|
||||
return getReceivedGPS(packet);
|
||||
}
|
||||
} else {
|
||||
return " _ / _ / _ ";
|
||||
}
|
||||
const uint8_t nonEncondedLatitudeOffset = 9; // "N" / "S"
|
||||
const uint8_t nonEncondedLongitudeOffset = 19; // "E" / "W"
|
||||
const uint8_t encondedByteOffset = 14;
|
||||
|
||||
int indexOfExclamation = packet.indexOf(":!");
|
||||
int indexOfEqual = packet.indexOf(":=");
|
||||
int baseIndex = - 1;
|
||||
if (indexOfExclamation > 10) {
|
||||
baseIndex = indexOfExclamation;
|
||||
} else if (indexOfEqual > 10) {
|
||||
baseIndex = indexOfEqual;
|
||||
}
|
||||
if (baseIndex == -1) return " _ / _ / _ ";
|
||||
|
||||
int latitudeIndex = baseIndex + nonEncondedLatitudeOffset;
|
||||
int longitudeIndex = baseIndex + nonEncondedLongitudeOffset;
|
||||
int encondedByteIndex = baseIndex + encondedByteOffset;
|
||||
int packetLength = packet.length();
|
||||
|
||||
if (latitudeIndex >= packetLength || longitudeIndex >= packetLength || encondedByteIndex >= packetLength) return " _ / _ / _ ";
|
||||
|
||||
char latChar = packet[latitudeIndex];
|
||||
char lngChar = packet[longitudeIndex];
|
||||
if ((latChar == 'N' || latChar == 'S') && (lngChar == 'E' || lngChar == 'W')) return getReceivedGPS(packet);
|
||||
|
||||
char byteChar = packet[encondedByteIndex];
|
||||
if (byteChar == 'G' || byteChar == 'Q' || byteChar == '[' || byteChar == 'H' || byteChar == 'X' || byteChar == '3') return decodeEncodedGPS(packet);
|
||||
|
||||
return " _ / _ / _ ";
|
||||
}
|
||||
|
||||
void setup() {
|
||||
|
||||
@@ -135,6 +135,13 @@ namespace LoRa_Utils {
|
||||
radio.setRxBoostedGainMode(true);
|
||||
#endif
|
||||
|
||||
#if defined(HAS_TCXO) && !defined(HAS_1W_LORA)
|
||||
radio.setDio2AsRfSwitch();
|
||||
#endif
|
||||
#ifdef HAS_TCXO
|
||||
radio.setTCXO(1.8);
|
||||
#endif
|
||||
|
||||
if (state == RADIOLIB_ERR_NONE) {
|
||||
Utils::println("init : LoRa Module ... done!");
|
||||
} else {
|
||||
|
||||
@@ -49,19 +49,19 @@ namespace POWER_Utils {
|
||||
|
||||
#ifdef VEXT_CTRL
|
||||
void vext_ctrl_ON() {
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3)
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290)
|
||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
|
||||
#endif
|
||||
#if defined(HELTEC_WP_V1) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3)
|
||||
#if defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3)
|
||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
void vext_ctrl_OFF() {
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3)
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3) || defined(HELTEC_VM_E290)
|
||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? HIGH : LOW);
|
||||
#endif
|
||||
#if defined(HELTEC_WP_V1) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3)
|
||||
#if defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2) || defined(HELTEC_WS) || defined(HELTEC_V3_2) || defined(HELTEC_WSL_V3)
|
||||
digitalWrite(VEXT_CTRL, Config.digi.ecoMode == 1 ? LOW : HIGH);
|
||||
#endif
|
||||
}
|
||||
@@ -70,19 +70,19 @@ namespace POWER_Utils {
|
||||
|
||||
#ifdef ADC_CTRL
|
||||
void adc_ctrl_ON() {
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2)
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290)
|
||||
digitalWrite(ADC_CTRL, HIGH);
|
||||
#endif
|
||||
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1)
|
||||
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2)
|
||||
digitalWrite(ADC_CTRL, LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
void adc_ctrl_OFF() {
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2)
|
||||
#if defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_V3_2) || defined(HELTEC_VM_E290)
|
||||
digitalWrite(ADC_CTRL, LOW);
|
||||
#endif
|
||||
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1)
|
||||
#if defined(HELTEC_V3) || defined(HELTEC_V2) || defined(HELTEC_WSL_V3) || defined(HELTEC_WP_V1) || defined(HELTEC_WP_V1_2)
|
||||
digitalWrite(ADC_CTRL, HIGH);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ namespace WX_Utils {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (wxModuleAddress == 0x40) {
|
||||
} else if (wxModuleAddress == 0x40 && Config.battery.useExternalI2CSensor == false) {
|
||||
if(si7021.begin()) {
|
||||
Serial.println("Si7021 sensor found");
|
||||
wxModuleType = 4;
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1268
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 18
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 23
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 18
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 23
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1268
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 18
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 23
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1268
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_VCC_PIN 21
|
||||
#define RADIO_SCLK_PIN 12
|
||||
#define RADIO_MISO_PIN 13
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 7
|
||||
#define RADIO_MISO_PIN 8
|
||||
#define RADIO_MOSI_PIN 9
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1268
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 8
|
||||
#define RADIO_MISO_PIN 9
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_1W_LORA
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 8
|
||||
#define RADIO_MISO_PIN 9
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 10
|
||||
#define RADIO_MISO_PIN 6
|
||||
#define RADIO_MOSI_PIN 7
|
||||
|
||||
56
variants/heltec_vision_master_e290/board_pinout.h
Normal file
56
variants/heltec_vision_master_e290/board_pinout.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||
*
|
||||
* This file is part of LoRa APRS iGate.
|
||||
*
|
||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef BOARD_PINOUT_H_
|
||||
#define BOARD_PINOUT_H_
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
#define RADIO_CS_PIN 8
|
||||
#define RADIO_RST_PIN 12
|
||||
#define RADIO_DIO1_PIN 14
|
||||
#define RADIO_BUSY_PIN 13
|
||||
#define RADIO_WAKEUP_PIN RADIO_DIO1_PIN
|
||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||
|
||||
// I2C
|
||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
||||
#define BOARD_I2C_SDA 39
|
||||
#define BOARD_I2C_SCL 38
|
||||
|
||||
// Display
|
||||
#define HAS_DISPLAY
|
||||
#define HAS_EPAPER
|
||||
#define EPAPER_BUSY 6
|
||||
#define EPAPER_RST 5
|
||||
#define EPAPER_DC 4
|
||||
#define EPAPER_CS 3
|
||||
#define EPAPER_SCL 2
|
||||
#define EPAPER_SDA 1
|
||||
|
||||
// Aditional Config
|
||||
#define INTERNAL_LED_PIN 45
|
||||
#define BATTERY_PIN 7
|
||||
#define ADC_CTRL 46
|
||||
#define VEXT_CTRL 18
|
||||
|
||||
#endif
|
||||
13
variants/heltec_vision_master_e290/platformio.ini
Normal file
13
variants/heltec_vision_master_e290/platformio.ini
Normal file
@@ -0,0 +1,13 @@
|
||||
[env:heltec_vision_master_e290]
|
||||
board = esp32-s3-devkitc-1
|
||||
board_build.mcu = esp32s3
|
||||
build_flags =
|
||||
${common.build_flags}
|
||||
-D RADIOLIB_EXCLUDE_LR11X0=1
|
||||
-D RADIOLIB_EXCLUDE_SX127X=1
|
||||
-D RADIOLIB_EXCLUDE_SX128X=1
|
||||
-D HELTEC_VM_E290
|
||||
-D Vision_Master_E290
|
||||
lib_deps =
|
||||
${common.lib_deps}
|
||||
https://github.com/todd-herbert/heltec-eink-modules.git
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
56
variants/heltec_wireless_paper_v1_2/board_pinout.h
Normal file
56
variants/heltec_wireless_paper_v1_2/board_pinout.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/* Copyright (C) 2025 Ricardo Guzman - CA2RXU
|
||||
*
|
||||
* This file is part of LoRa APRS iGate.
|
||||
*
|
||||
* LoRa APRS iGate is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* LoRa APRS iGate is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with LoRa APRS iGate. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef BOARD_PINOUT_H_
|
||||
#define BOARD_PINOUT_H_
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
#define RADIO_CS_PIN 8
|
||||
#define RADIO_RST_PIN 12
|
||||
#define RADIO_DIO1_PIN 14
|
||||
#define RADIO_BUSY_PIN 13
|
||||
#define RADIO_WAKEUP_PIN RADIO_DIO1_PIN
|
||||
#define GPIO_WAKEUP_PIN GPIO_SEL_14
|
||||
|
||||
// I2C
|
||||
#define USE_WIRE1_WITH_BOARD_I2C_PINS
|
||||
#define BOARD_I2C_SDA 37
|
||||
#define BOARD_I2C_SCL 36
|
||||
|
||||
// Display
|
||||
#define HAS_DISPLAY
|
||||
#define HAS_EPAPER
|
||||
#define EPAPER_BUSY 7
|
||||
#define EPAPER_RST 6
|
||||
#define EPAPER_DC 5
|
||||
#define EPAPER_CS 4
|
||||
#define EPAPER_SCL 3
|
||||
#define EPAPER_SDA 2
|
||||
|
||||
// Aditional Config
|
||||
#define INTERNAL_LED_PIN 18
|
||||
#define BATTERY_PIN 20
|
||||
#define ADC_CTRL 19
|
||||
#define VEXT_CTRL 45
|
||||
|
||||
#endif
|
||||
14
variants/heltec_wireless_paper_v1_2/platformio.ini
Normal file
14
variants/heltec_wireless_paper_v1_2/platformio.ini
Normal file
@@ -0,0 +1,14 @@
|
||||
[env:heltec_wireless_paper_v1_2]
|
||||
board = esp32-s3-devkitc-1
|
||||
board_build.mcu = esp32s3
|
||||
build_flags =
|
||||
${common.build_flags}
|
||||
-D RADIOLIB_EXCLUDE_LR11X0=1
|
||||
-D RADIOLIB_EXCLUDE_SX127X=1
|
||||
-D RADIOLIB_EXCLUDE_SX128X=1
|
||||
-D HELTEC_WP_V1_2
|
||||
-D WIRELESS_PAPER
|
||||
-D V1_2
|
||||
lib_deps =
|
||||
${common.lib_deps}
|
||||
https://github.com/todd-herbert/heltec-eink-modules.git
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9
|
||||
#define RADIO_MISO_PIN 11
|
||||
#define RADIO_MOSI_PIN 10
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 9 // SX1262 SCK
|
||||
#define RADIO_MISO_PIN 11 // SX1262 MISO
|
||||
#define RADIO_MOSI_PIN 10 // SX1262 MOSI
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 5
|
||||
#define RADIO_MISO_PIN 19
|
||||
#define RADIO_MOSI_PIN 27
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 5
|
||||
#define RADIO_MISO_PIN 3
|
||||
#define RADIO_MOSI_PIN 6
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 12
|
||||
#define RADIO_MISO_PIN 13
|
||||
#define RADIO_MOSI_PIN 11
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 40
|
||||
#define RADIO_MISO_PIN 38
|
||||
#define RADIO_MOSI_PIN 41
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
// LoRa Radio
|
||||
#define HAS_SX1262
|
||||
#define HAS_TCXO
|
||||
#define RADIO_SCLK_PIN 40
|
||||
#define RADIO_MISO_PIN 38
|
||||
#define RADIO_MOSI_PIN 41
|
||||
|
||||
Reference in New Issue
Block a user