Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save danielaguirre708/a05ece3ad264b7315e04b2b706bcda0e to your computer and use it in GitHub Desktop.
Save danielaguirre708/a05ece3ad264b7315e04b2b706bcda0e to your computer and use it in GitHub Desktop.
#include <Wire.h>
#include "MAX30105.h"
#include "spo2_algorithm.h"
#include <Adafruit_MLX90614.h>
// === MAX30102 ===
MAX30105 particleSensor;
#define MAX_BUFFER_SIZE 100
uint32_t irBuffer[MAX_BUFFER_SIZE];
uint32_t redBuffer[MAX_BUFFER_SIZE];
int bufferIndex = 0;
bool calibrated = false;
unsigned long calibrationStart = 0;
long irMin = LONG_MAX, irMax = 0;
bool surfacePresent = false;
bool surfacePreviouslyPresent = false;
// === MLX90614 ===
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
// === GENERAL ===
unsigned long lastMeasurementTime = 0;
const unsigned long MEASUREMENT_INTERVAL = 20000; // 20 segundos
void setup() {
Serial.begin(115200);
delay(1000);
Wire.begin(17, 18); // Pines SDA, SCL
// Inicializa MAX30102
if (!particleSensor.begin(Wire, I2C_SPEED_STANDARD)) {
Serial.println("❌ Sensor MAX30102 no detectado.");
while (1);
}
particleSensor.setup();
particleSensor.setPulseAmplitudeRed(0x1F);
particleSensor.setPulseAmplitudeIR(0x1F);
Serial.println("🔍 MAX30102 esperando superficie...");
// Inicializa MLX90614
if (!mlx.begin()) {
Serial.println("❌ Sensor MLX90614 no detectado.");
while (1);
}
Serial.println("✅ Sensor MLX90614 listo.");
}
void loop() {
unsigned long currentTime = millis();
long ir = particleSensor.getIR();
surfacePresent = ir > 10000;
// Detección de colocación y retiro
if (surfacePresent && !surfacePreviouslyPresent) {
Serial.println("✋ Superficie detectada.");
calibrationStart = millis();
irMin = LONG_MAX;
irMax = 0;
calibrated = false;
} else if (!surfacePresent && surfacePreviouslyPresent) {
Serial.println("👋 Superficie retirada.");
calibrated = false;
}
surfacePreviouslyPresent = surfacePresent;
// Calibración del MAX30102
if (surfacePresent && !calibrated) {
if (millis() - calibrationStart < 10000) {
if (ir < irMin) irMin = ir;
if (ir > irMax) irMax = ir;
} else {
calibrated = true;
Serial.println("✅ Calibración MAX30102 completada.");
}
}
// Llenado de buffers solo si calibrado y con superficie
if (surfacePresent && calibrated) {
irBuffer[bufferIndex] = ir;
redBuffer[bufferIndex] = particleSensor.getRed();
bufferIndex = (bufferIndex + 1) % MAX_BUFFER_SIZE;
}
// Cada 20 segundos se imprime el JSON, esté o no esté el dedo
if (currentTime - lastMeasurementTime >= MEASUREMENT_INTERVAL) {
lastMeasurementTime = currentTime;
// === MLX90614 ===
float tempAmb = mlx.readAmbientTempC();
float tempObj = mlx.readObjectTempC();
String tempMsg = "🌡️ Ambiente: " + String(tempAmb, 1) + " °C | Objeto: " + String(tempObj, 1) + " °C";
// === MAX30102 ===
String pulseMsg;
int32_t spo2 = 0, heartRate = 0;
int8_t spo2_valid = 0, hr_valid = 0;
if (!surfacePresent) {
pulseMsg = "⚠️ Superficie no detectada. ❤️ BPM: 0 | 🩸 SpO₂: 0 %";
} else if (!calibrated) {
pulseMsg = "⏳ Esperando calibración... ❤️ BPM: 0 | 🩸 SpO₂: 0 %";
} else {
maxim_heart_rate_and_oxygen_saturation(irBuffer, MAX_BUFFER_SIZE,
redBuffer, &spo2, &spo2_valid,
&heartRate, &hr_valid);
if (hr_valid && spo2_valid) {
pulseMsg = "❤️ BPM: " + String(heartRate) + " | 🩸 SpO₂: " + String(spo2) + " %";
} else {
pulseMsg = "⚠️ Datos no válidos. ❤️ BPM: 0 | 🩸 SpO₂: 0 %";
}
}
// === JSON OUTPUT ===
Serial.println("{");
Serial.print(" \"MLX90614\": \""); Serial.print(tempMsg); Serial.println("\",");
Serial.print(" \"MAX30102\": \""); Serial.print(pulseMsg); Serial.println("\"");
Serial.println("}");
}
delay(20);
}
@danielaguirre708
Copy link
Author

Compiling .pio/build/heltec_wireless_tracker/src/main.cpp.o
src/main.cpp:30:1: error: could not convert '{2, 12, 8, 9, 11, 10, 14, 13, -1, -1, true, false, false}' from '' to 'hw_config'
};
^
src/main.cpp: In function 'void loop()':
src/main.cpp:102:3: error: 'lmh_loop' was not declared in this scope
lmh_loop(); // necesario para stack
^~~~~~~~
src/main.cpp:102:3: note: suggested alternative: 'lmh_join'
lmh_loop(); // necesario para stack
^~~~~~~~
lmh_join
src/main.cpp:112:7: error: designator order for field 'lmh_app_data_t::buffer' does not match declaration order in 'lmh_app_data_t'
};
^
Compiling .pio/build/heltec_wireless_tracker/lib254/Adafruit GFX Library/Adafruit_GFX.cpp.o
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1

@danielaguirre708
Copy link
Author

🚀 Iniciando prueba mínima OTAA...
🔗 Enviando OTAA join request...
❌ OTAA fallida.

@danielaguirre708
Copy link
Author

src/main.cpp: In function 'void setup()':
src/main.cpp:37:3: error: 'RadioInit' was not declared in this scope
RadioInit(&RadioEvents);
^~~~~~~~~
src/main.cpp:37:3: note: suggested alternative: 'Radio'
RadioInit(&RadioEvents);
^~~~~~~~~
Radio
src/main.cpp:55:3: error: too few arguments to function
);
^
Indexing .pio/build/heltec_wireless_tracker/lib348/libAdafruit BusIO.a
Compiling .pio/build/heltec_wireless_tracker/libd8d/TinyGPSPlus/TinyGPS++.cpp.o
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1

@danielaguirre708
Copy link
Author

src/main.cpp: In function 'void setup()':
src/main.cpp:55:3: error: too few arguments to function
);
^
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1

@aarroyave-mfl
Copy link

Radio.SetTxConfig(
MODEM_LORA, // Modem
22, // TX power (dBm)
0, // Fdev (solo para FSK)
125000, // Bandwidth (Hz)
7, // Spreading Factor
1, // Coding Rate (4/5)
8, // Preamble length
false, // Fixed length
true, // CRC enabled
0, // Frequency hopping
0, // Hop period
false, // IQ inversion
3000 // Timeout (ms)
);

@danielaguirre708
Copy link
Author

Reconnecting to /dev/cu.usbmodem101 Connected!
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c123
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
E (96) psram: PSRAM ID read error: 0x00ffffff, PSRAM chip not found or not supported, or wrong PSRAM line mode
[ 95][W][esp32-hal-psram.c:71] psramInit(): PSRAM init failed!
📡 Iniciando prueba LoRa punto-a-punto...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c123
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
E (96) psram: PSRAM ID read error: 0x00ffffff, PSRAM chip not found or not supported, or wrong PSRAM line mode
[ 95][W][esp32-hal-psram.c:71] psramInit(): PSRAM init failed!
📡 Iniciando prueba LoRa punto-a-punto...

@danielaguirre708
Copy link
Author

Reconnecting to /dev/cu.usbmodem101 Connected!
📡 Iniciando prueba LoRa punto-a-punto...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
✅ Modem configurado
✅ Canal configurado
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200bf8f
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
📡 Iniciando prueba LoRa punto-a-punto...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
✅ Modem configurado
✅ Canal configuradoESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200bf8f
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c

@danielaguirre708
Copy link
Author

  • Executing task: platformio device monitor

--- Terminal on /dev/cu.usbmodem101 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
🔍 Iniciando diagnóstico de pines SX1262...
🔁 Lectura de pines cada 1s...
📶 BUSY = 1 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)
📶 BUSY = 0 (GPIO13), DIO1 = 0 (GPIO14)

@danielaguirre708
Copy link
Author

--- Terminal on /dev/cu.usbmodem101 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
📡 Receptor LoRa punto-a-punto iniciado...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c053
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
📡 Receptor LoRa punto-a-punto iniciado...

@danielaguirre708
Copy link
Author

Reconnecting to /dev/cu.usbmodem101 . Connected!
📡 Receptor LoRa punto-a-punto iniciado...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c04b
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
📡 Receptor LoRa punto-a-punto iniciado...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c04b
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
📡 Receptor LoRa punto-a-punto iniciado...
✅ Pines configurados.
✅ Radio SX1262 inicializado.
✅ Radio.Init OK
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4200c04b

@danielaguirre708
Copy link
Author

Disconnected (read failed: [Errno 6] Device not configured)
Reconnecting to /dev/cu.usbmodem101 Connected!
🧪 Lectura inicial de pines BUSY y DIO1...
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0
📶 BUSY = 0, DIO1 = 0

@danielaguirre708
Copy link
Author

Compiling .pio/build/heltec_wireless_tracker/src/main.cpp.o
src/main.cpp:19:1: error: could not convert '{2, 12, 8, 9, 11, 10, 14, 13, -1, -1, true, false, false}' from '' to 'hw_config'
};
^
src/main.cpp:28:1: error: 'lmh_param_t' does not name a type; did you mean 'rmt_data_t'?
lmh_param_t lora_params = {
^~~~~~~~~~~
rmt_data_t
src/main.cpp:40:25: error: variable or field 'lorawan_rx_handler' declared void
void lorawan_rx_handler(lmh_app_data_t *app_data);
^~~~~~~~~~~~~~
src/main.cpp:40:25: error: 'lmh_app_data_t' was not declared in this scope
src/main.cpp:40:25: note: suggested alternative: 'rmt_data_t'
void lorawan_rx_handler(lmh_app_data_t *app_data);
^~~~~~~~~~~~~~
rmt_data_t
src/main.cpp:40:41: error: 'app_data' was not declared in this scope
void lorawan_rx_handler(lmh_app_data_t *app_data);
^~~~~~~~
src/main.cpp:41:36: error: variable or field 'lorawan_confirm_class_handler' declared void
void lorawan_confirm_class_handler(DeviceClass_t Class);
^~~~~~~~~~~~~
src/main.cpp:41:36: error: 'DeviceClass_t' was not declared in this scope
src/main.cpp:41:36: note: suggested alternative: 'DhcpClass'
void lorawan_confirm_class_handler(DeviceClass_t Class);
^~~~~~~~~~~~~
DhcpClass
src/main.cpp:43:1: error: 'lmh_callback_t' does not name a type; did you mean '_calloc_r'?
lmh_callback_t lora_callbacks = {
^~~~~~~~~~~~~~
_calloc_r
src/main.cpp: In function 'void setup()':
src/main.cpp:67:3: error: 'lmh_setDevEui' was not declared in this scope
lmh_setDevEui(nodeDeviceEUI);
^~~~~~~~~~~~~
src/main.cpp:68:3: error: 'lmh_setAppEui' was not declared in this scope
lmh_setAppEui(nodeAppEUI);
^~~~~~~~~~~~~
src/main.cpp:69:3: error: 'lmh_setAppKey' was not declared in this scope
lmh_setAppKey(nodeAppKey);
^~~~~~~~~~~~~
src/main.cpp:69:3: note: suggested alternative: 'nodeAppKey'
lmh_setAppKey(nodeAppKey);
^~~~~~~~~~~~~
nodeAppKey
src/main.cpp:72:17: error: 'lora_callbacks' was not declared in this scope
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~~~~~~~~
src/main.cpp:72:33: error: 'lora_params' was not declared in this scope
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~~~~~
src/main.cpp:72:52: error: 'CLASS_A' was not declared in this scope
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~
src/main.cpp:72:52: note: suggested alternative: 'IP_CLASSA'
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~
IP_CLASSA
src/main.cpp:72:61: error: 'LORAMAC_REGION_US915' was not declared in this scope
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~~~~~~~~~~~~~~
src/main.cpp:72:7: error: 'lmh_init' was not declared in this scope
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~~
src/main.cpp:72:7: note: suggested alternative: 'mbsinit'
if (lmh_init(&lora_callbacks, lora_params, true, CLASS_A, LORAMAC_REGION_US915) != 0) {
^~~~~~~~
mbsinit
src/main.cpp:79:3: error: 'lmh_join' was not declared in this scope
lmh_join();
^~~~~~~~
src/main.cpp:79:3: note: suggested alternative: 'lchown'
lmh_join();
^~~~~~~~
lchown
src/main.cpp: In function 'void lorawan_has_joined_handler()':
src/main.cpp:95:3: error: 'lmh_app_data_t' was not declared in this scope
lmh_app_data_t app_data = {
^~~~~~~~~~~~~~
src/main.cpp:95:3: note: suggested alternative: 'rmt_data_t'
lmh_app_data_t app_data = {
^~~~~~~~~~~~~~
rmt_data_t
src/main.cpp:100:13: error: 'app_data' was not declared in this scope
lmh_send(&app_data, LMH_UNCONFIRMED_MSG);
^~~~~~~~
src/main.cpp:100:13: note: suggested alternative: 'data'
lmh_send(&app_data, LMH_UNCONFIRMED_MSG);
^~~~~~~~
data
src/main.cpp:100:23: error: 'LMH_UNCONFIRMED_MSG' was not declared in this scope
lmh_send(&app_data, LMH_UNCONFIRMED_MSG);
^~~~~~~~~~~~~~~~~~~
src/main.cpp:100:3: error: 'lmh_send' was not declared in this scope
lmh_send(&app_data, LMH_UNCONFIRMED_MSG);
^~~~~~~~
src/main.cpp:100:3: note: suggested alternative: 'va_end'
lmh_send(&app_data, LMH_UNCONFIRMED_MSG);
^~~~~~~~
va_end
src/main.cpp: At global scope:
src/main.cpp:108:25: error: variable or field 'lorawan_rx_handler' declared void
void lorawan_rx_handler(lmh_app_data_t *app_data) {
^~~~~~~~~~~~~~
src/main.cpp:108:25: error: 'lmh_app_data_t' was not declared in this scope
src/main.cpp:108:25: note: suggested alternative: 'rmt_data_t'
void lorawan_rx_handler(lmh_app_data_t *app_data) {
^~~~~~~~~~~~~~
rmt_data_t
src/main.cpp:108:41: error: 'app_data' was not declared in this scope
void lorawan_rx_handler(lmh_app_data_t *app_data) {
^~~~~~~~
src/main.cpp:112:36: error: variable or field 'lorawan_confirm_class_handler' declared void
void lorawan_confirm_class_handler(DeviceClass_t Class) {
^~~~~~~~~~~~~
src/main.cpp:112:36: error: 'DeviceClass_t' was not declared in this scope
src/main.cpp:112:36: note: suggested alternative: 'DhcpClass'
void lorawan_confirm_class_handler(DeviceClass_t Class) {
^~~~~~~~~~~~~
DhcpClass
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1

@danielaguirre708
Copy link
Author

Compiling .pio/build/heltec_wireless_tracker/src/main.cpp.o
src/main.cpp: In function 'void setup()':
src/main.cpp:31:45: error: too many arguments to function 'uint32_t lora_rak4630_init()'
PIN_LORA_TX, PIN_LORA_RX);
^
In file included from .pio/libdeps/heltec_wireless_tracker/SX126x-Arduino/src/LoRaWan-Arduino.h:15,
from .pio/libdeps/heltec_wireless_tracker/SX126x-Arduino/src/LoRaWan-RAK4630.h:1,
from src/main.cpp:2:
.pio/libdeps/heltec_wireless_tracker/SX126x-Arduino/src/boards/mcu/board.h:109:10: note: declared here
uint32_t lora_rak4630_init(void);
^~~~~~~~~~~~~~~~~
src/main.cpp:36:8: error: 'LoRaWAN' was not declared in this scope
if (!LoRaWAN.beginOTAA(devEui, appEui, appKey, REGION)) {
^~~~~~~
src/main.cpp:44:11: error: 'LoRaWAN' was not declared in this scope
while (!LoRaWAN.isJoined()) {
^~~~~~~
src/main.cpp: In function 'void loop()':
src/main.cpp:56:15: error: 'LoRaWAN' was not declared in this scope
bool sent = LoRaWAN.send((uint8_t *)msg, strlen(msg), false);
^~~~~~~
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1

@aarroyave-mfl
Copy link

[env:heltec_wireless_tracker]
platform = espressif32
board = heltec_wireless_tracker
framework = arduino
monitor_speed = 115200
lib_deps =
heltecautomation/Heltec ESP32 Dev-Boards
build_flags =
-D ARDUINO_HELTEC_WIRELESS_TRACKER
-D LoRaWAN_REGION=REGION_US915 ; O REGION_EU868, según tu caso
-D LoRaWAN_CLASS=CLASS_A
-D LoRaWAN_NETMODE=LWOTAA
-D LoRaWAN_ADR_ON
-D ACTIVE_REGION=LoRaWAN_REGION_US915

@aarroyave-mfl
Copy link

#include "heltec.h"
#include "LoRaWan_APP.h"

#define DEV_EUI { 0x00, 0x12, 0x4B, 0x00, 0x01, 0x23, 0x45, 0x67 }
#define APP_EUI { 0x70, 0xB3, 0xD5, 0x7E, 0xF0, 0x00, 0x00, 0x00 }
#define APP_KEY { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88,
0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x00 }

static uint8_t devEui[] = DEV_EUI;
static uint8_t appEui[] = APP_EUI;
static uint8_t appKey[] = APP_KEY;

void prepareTxFrame(uint8_t port) {
uint8_t myData[] = "Hola LoRaWAN desde Heltec!";
appDataSize = sizeof(myData) - 1;
memcpy(appData, myData, appDataSize);
}

void setup() {
Serial.begin(115200);
Heltec.begin(true /Display/, true /LoRa/, true /Serial/, true /PABOOST/, 915E6);

deviceState = DEVICE_STATE_INIT;
LoRaWAN.begin(LORAWAN_CLASS, ACTIVE_REGION);
}

void loop() {
LoRaWAN.loop();
}

@aarroyave-mfl
Copy link

pio pkg install --library "heltecautomation/Heltec ESP32 Dev-Boards@^2.1.4"

@danielaguirre708
Copy link
Author

Processing heltec_wireless_tracker (platform: espressif32; board: heltec_wireless_tracker; framework: arduino)

UserSideException: Please specify name, url and vendor fields for /Users/aguirre/.platformio/boards/heltec_wireless_tracker.json

  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.

  • Terminal will be reused by tasks, press any key to close it.

  • Executing task: platformio run --target upload

Processing heltec_wireless_tracker (platform: espressif32; board: heltec_wireless_tracker; framework: arduino)

UserSideException: Please specify name, url and vendor fields for /Users/aguirre/.platformio/boards/heltec_wireless_tracker.json

  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

@aarroyave-mfl
Copy link

{
"name": "Heltec Wireless Tracker",
"vendor": "Heltec",
"url": "https://heltec.org/project/wireless-tracker/",

"build": {
"core": "esp32",
"mcu": "esp32s3",
"variant": "heltec_wireless_tracker",
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"flash_size": "8MB",
"psram": "qspi"
},
"connectivity": ["wifi", "bluetooth", "lora"],
"debug": {
"openocd_target": "esp32s3.cfg"
},
"frameworks": ["arduino", "espidf"],
"upload": {
"maximum_size": 3342336,
"maximum_ram_size": 327680,
"speed": 921600,
"require_upload_port": true
}
}

@danielaguirre708
Copy link
Author

Processing heltec_wireless_tracker (platform: espressif32; board: heltec_wireless_tracker; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/heltec_wireless_tracker.html
PLATFORM: Espressif 32 (6.10.0) > Heltec Wireless Tracker
HARDWARE: ESP32S3 240MHz, 320KB RAM, 3.19MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
  • tool-esptoolpy @ 1.40501.0 (4.5.1)
  • tool-mkfatfs @ 2.0.1
  • tool-mklittlefs @ 1.203.210628 (2.3)
  • tool-mkspiffs @ 2.230.0 (2.30)
  • toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
  • toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 36 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- Heltec ESP32 Dev-Boards @ 2.1.4
    Building in release mode
    Compiling .pio/build/heltec_wireless_tracker/src/main.cpp.o
    Building .pio/build/heltec_wireless_tracker/bootloader.bin
    Generating partitions .pio/build/heltec_wireless_tracker/partitions.bin
    esptool.py v4.5.1
    Creating esp32s3 image...
    Merged 1 ELF section
    Successfully created esp32s3 image.
    Compiling .pio/build/heltec_wireless_tracker/lib7f8/SPI/SPI.cpp.o
    In file included from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:83,
    from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:36,
    from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/heltec.h:8,
    from src/main.cpp:14:
    /Users/aguirre/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.h:29:10: fatal error: pins_arduino.h: No such file or directory


#include "pins_arduino.h"
^~~~~~~~~~~~~~~~
compilation terminated.
In file included from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:22:
/Users/aguirre/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.h:25:10: fatal error: pins_arduino.h: No such file or directory



#include "pins_arduino.h"
^~~~~~~~~~~~~~~~
compilation terminated.
Compiling .pio/build/heltec_wireless_tracker/libb85/Wire/Wire.cpp.o
*** [.pio/build/heltec_wireless_tracker/src/main.cpp.o] Error 1
*** [.pio/build/heltec_wireless_tracker/lib7f8/SPI/SPI.cpp.o] Error 1
In file included from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal.h:83,
from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src/Wire.h:29,
from /Users/aguirre/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src/Wire.cpp:34:
/Users/aguirre/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.h:29:10: fatal error: pins_arduino.h: No such file or directory



#include "pins_arduino.h"
^~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/heltec_wireless_tracker/libb85/Wire/Wire.cpp.o] Error 1
=================================================== [FAILED] Took 1.17 secon

@danielaguirre708
Copy link
Author

  • Executing task: platformio run --target upload

Processing heltec_wireless_tracker (platform: espressif32; board: heltec_wireless_tracker; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/heltec_wireless_tracker.html
PLATFORM: Espressif 32 (6.10.0) > Heltec Wireless Tracker
HARDWARE: ESP32S3 240MHz, 320KB RAM, 3.19MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
  • tool-esptoolpy @ 1.40501.0 (4.5.1)
  • tool-mkfatfs @ 2.0.1
  • tool-mklittlefs @ 1.203.210628 (2.3)
  • tool-mkspiffs @ 2.230.0 (2.30)
  • toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
  • toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 36 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- Heltec ESP32 Dev-Boards @ 2.1.4
    Building in release mode
    Compiling .pio/build/heltec_wireless_tracker/src/main.cpp.o
    Building .pio/build/heltec_wireless_tracker/bootloader.bin
    Generating partitions .pio/build/heltec_wireless_tracker/partitions.bin
    esptool.py v4.5.1
    Creating esp32s3 image...
    Merged 1 ELF section
    Successfully created esp32s3 image.
    Compiling .pio/build/heltec_wireless_tracker/lib7f8/SPI/SPI.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/libb85/Wire/Wire.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_BusIO_Register.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_GenericDevice.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_I2CDevice.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_SPIDevice.cpp.o
    In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
    from src/main.cpp:15:
    .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:141: warning: "LORA_MAC_PRIVATE_SYNCWORD" redefined
    #define LORA_MAC_PRIVATE_SYNCWORD 0x12

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:122: note: this is the location of the previous definition
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:146: warning: "LORA_MAC_PUBLIC_SYNCWORD" redefined
#define LORA_MAC_PUBLIC_SYNCWORD 0x34

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:127: note: this is the location of the previous definition
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444

Compiling .pio/build/heltec_wireless_tracker/lib254/Adafruit GFX Library/Adafruit_GFX.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib254/Adafruit GFX Library/Adafruit_GrayOLED.cpp.o
Archiving .pio/build/heltec_wireless_tracker/lib7f8/libSPI.a
Indexing .pio/build/heltec_wireless_tracker/lib7f8/libSPI.a
Compiling .pio/build/heltec_wireless_tracker/lib254/Adafruit GFX Library/Adafruit_SPITFT.cpp.o
Archiving .pio/build/heltec_wireless_tracker/libb85/libWire.a
Indexing .pio/build/heltec_wireless_tracker/libb85/libWire.a
Compiling .pio/build/heltec_wireless_tracker/lib254/Adafruit GFX Library/glcdfont.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/BH1750.cpp.o
Archiving .pio/build/heltec_wireless_tracker/lib348/libAdafruit BusIO.a
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/BMP180.cpp.o
Indexing .pio/build/heltec_wireless_tracker/lib348/libAdafruit BusIO.a
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/BMP280.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/GXHTC.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_Display.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_DisplayUi.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_TinyGPS++.cpp.o
Archiving .pio/build/heltec_wireless_tracker/lib254/libAdafruit GFX Library.a
Indexing .pio/build/heltec_wireless_tracker/lib254/libAdafruit GFX Library.a
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_st7735.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_st7735_fonts.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_st7736.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/HT_st7789spi.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/LoRaWan_APP.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/clk.c.o
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp: In member function 'void HT_st7735::st7735_set_address_window(uint8_t, uint8_t, uint8_t, uint8_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:171:33: warning: narrowing conversion of '(((int)x0) + ((int)((HT_st7735*)this)->HT_st7735::_x_start))' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { 0x00, x0 + _x_start, 0x00, x1 + _x_start };
~~~^~~~~~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:171:54: warning: narrowing conversion of '(((int)x1) + ((int)((HT_st7735*)this)->HT_st7735::_x_start))' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { 0x00, x0 + _x_start, 0x00, x1 + _x_start };
~~~^~~~~~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp: In member function 'void HT_st7735::st7735_draw_pixel(uint16_t, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:224:30: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:224:42: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp: In member function 'void HT_st7735::st7735_write_char(uint16_t, uint16_t, char, FontDef, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:240:42: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:240:54: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:243:44: warning: narrowing conversion of '(((int)bgcolor) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { bgcolor >> 8, bgcolor & 0xFF };
~~~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:243:58: warning: narrowing conversion of '(int)(((short unsigned int)((int)bgcolor)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { bgcolor >> 8, bgcolor & 0xFF };
~~~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp: In member function 'void HT_st7735::st7735_fill_rectangle(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:288:30: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7735.cpp:288:42: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/da217.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/board.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/delay.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/gpio-board.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/gpio.c.o
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp: In member function 'void HT_st7736::st7735_set_address_window(uint8_t, uint8_t, uint8_t, uint8_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:171:33: warning: narrowing conversion of '(((int)x0) + ((int)((HT_st7736*)this)->HT_st7736::_x_start))' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { 0x00, x0 + _x_start, 0x00, x1 + _x_start };
~~~^~~~~~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:171:54: warning: narrowing conversion of '(((int)x1) + ((int)((HT_st7736*)this)->HT_st7736::_x_start))' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { 0x00, x0 + _x_start, 0x00, x1 + _x_start };
~~~^~~~~~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp: In member function 'void HT_st7736::st7735_draw_pixel(uint16_t, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:224:30: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:224:42: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp: In member function 'void HT_st7736::st7735_write_char(uint16_t, uint16_t, char, FontDef, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:240:42: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:240:54: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:243:44: warning: narrowing conversion of '(((int)bgcolor) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { bgcolor >> 8, bgcolor & 0xFF };
~~~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:243:58: warning: narrowing conversion of '(int)(((short unsigned int)((int)bgcolor)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { bgcolor >> 8, bgcolor & 0xFF };
~~~~~~~~^~~~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp: In member function 'void HT_st7736::st7735_fill_rectangle(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:288:30: warning: narrowing conversion of '(((int)color) >> 8)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/HT_st7736.cpp:288:42: warning: narrowing conversion of '(int)(((short unsigned int)((int)color)) & 255)' from 'int' to 'uint8_t' {aka 'unsigned char'} inside { } [-Wnarrowing]
uint8_t data[] = { color >> 8, color & 0xFF };
~~~~~~^~~~~~
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/sx1262-board.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/sx126x.c.o
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/sx1276-board.c.o
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c: In function 'GpioMcuWrite':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c:56:15: error: 'RADIO_NSS' undeclared (first use in this function); did you mean 'RAD_TO_DEG'?
if(obj->pin==RADIO_NSS && radio_nss_inited==false)
^~~~~~~~~
RAD_TO_DEG
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c:56:15: note: each undeclared identifier is reported only once for each function it appears in
Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/sx1276.c.o
*** [.pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/gpio-board.c.o] Error 1
In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:141: warning: "LORA_MAC_PRIVATE_SYNCWORD" redefined
#define LORA_MAC_PRIVATE_SYNCWORD 0x12

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:122: note: this is the location of the previous definition
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:146: warning: "LORA_MAC_PUBLIC_SYNCWORD" redefined
#define LORA_MAC_PUBLIC_SYNCWORD 0x34

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:127: note: this is the location of the previous definition
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444

.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/da217.cpp: In member function 'void DA217::da217_start_up_step_detect()':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/da217.cpp:93:46: warning: unsigned conversion from 'int' to 'uint8_t' {aka 'unsigned char'} changes value from '-129' to '127' [-Woverflow]
da217_write_single_reg(DA217_REG_RESET_STEP,~DA217_RESET_STEP);
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/da217.cpp: In member function 'void DA217::da217_stop_step_detect()':
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/da217.cpp:100:47: warning: unsigned conversion from 'int' to 'uint8_t' {aka 'unsigned char'} changes value from '-129' to '127' [-Woverflow]
da217_write_single_reg(DA217_REG_STEP_FILTER,~DA217_STEP_FILTER_EN);
============================================================= [FAILED] Took 3.53 seconds =============================================================

  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.

  • Terminal will be reused by tasks, press any key to close it.

  • Executing task: platformio run --target upload

Processing heltec_wireless_tracker (platform: espressif32; board: heltec_wireless_tracker; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/heltec_wireless_tracker.html
PLATFORM: Espressif 32 (6.10.0) > Heltec Wireless Tracker
HARDWARE: ESP32S3 240MHz, 320KB RAM, 3.19MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b
  • tool-esptoolpy @ 1.40501.0 (4.5.1)
  • tool-mkfatfs @ 2.0.1
  • tool-mklittlefs @ 1.203.210628 (2.3)
  • tool-mkspiffs @ 2.230.0 (2.30)
  • toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
  • toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 36 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- Heltec ESP32 Dev-Boards @ 2.1.4
    Building in release mode
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/gpio-board.c.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/heltec.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/lora/LoRa.cpp.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/loramac/LoRaMac.c.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/loramac/LoRaMacClassB.c.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/loramac/LoRaMacConfirmQueue.c.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/loramac/LoRaMacCrypto.c.o
    Compiling .pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/loramac/aes.c.o
    .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c: In function 'GpioMcuWrite':
    .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c:56:15: error: 'RADIO_NSS' undeclared (first use in this function); did you mean 'RAD_TO_DEG'?
    if(obj->pin==RADIO_NSS && radio_nss_inited==false)
    ^~~~~~~~~
    RAD_TO_DEG
    .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/gpio-board.c:56:15: note: each undeclared identifier is reported only once for each function it appears in
    *** [.pio/build/heltec_wireless_tracker/lib555/Heltec ESP32 Dev-Boards/driver/gpio-board.c.o] Error 1
    ============================================================= [FAILED] Took 1.90 seconds =============================================================
  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

@aarroyave-mfl
Copy link

-DRADIO_NSS=8
-DRADIO_RESET=12
-DRADIO_BUSY=13
-DRADIO_DIO_1=14
-DRADIO_RXEN=17
-DRADIO_TXEN=18
-DRADIO_ANT_SWITCH=21
-DRADIO_SPI=SPI

@danielaguirre708
Copy link
Author

Linking .pio/build/heltec_wireless_tracker/firmware.elf
/Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o):(.literal._ZN8McuClass5beginEhh+0x1c): undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o): in function McuClass::setSPIFrequency(unsigned long)':
C:\Program Files (x86)\Arduino/E:\Documents\Arduino\libraries\Heltec_ESP32\src/ESP32_Mcu.cpp:578: undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x0): undefined reference to devEui'
/Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x4): undefined reference to appEui' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x8): undefined reference to appKey'
/Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZN12LoRaWanClass5sleepE12eDeviceClass+0x0): undefined reference to `Radio'
collect2: error: ld returned 1 exit status
*** [.pio/build/heltec_wireless_tracker/firmware.elf] Error 1

@aarroyave-mfl
Copy link

#include "LoRaWan_APP.h"

uint8_t devEui[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
uint8_t appEui[] = { 0x70, 0xB3, 0xD5, 0x7E, 0xF0, 0x00, 0x00, 0x00 };
uint8_t appKey[] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x16, 0x88, 0x09, 0xCF, 0x4F, 0x3C };

RadioEvents_t RadioEvents;
SX126x Radio( RADIO_NSS, RADIO_BUSY, RADIO_DIO_1, RADIO_RESET );

void RadioOnDioIrq() {
// Aquí puedes dejarlo vacío si no manejas interrupciones
}

@danielaguirre708
Copy link
Author

Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_I2CDevice.cpp.o
Compiling .pio/build/heltec_wireless_tracker/lib348/Adafruit BusIO/Adafruit_SPIDevice.cpp.o
In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:141: warning: "LORA_MAC_PRIVATE_SYNCWORD" redefined
#define LORA_MAC_PRIVATE_SYNCWORD 0x12

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:122: note: this is the location of the previous definition
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:146: warning: "LORA_MAC_PUBLIC_SYNCWORD" redefined
#define LORA_MAC_PUBLIC_SYNCWORD 0x34

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:127: note: this is the location of the previous definition
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/lorawan_config.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:141: warning: "LORA_MAC_PRIVATE_SYNCWORD" redefined
#define LORA_MAC_PRIVATE_SYNCWORD 0x12

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/lorawan_config.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:122: note: this is the location of the previous definition
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/lorawan_config.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:146: warning: "LORA_MAC_PUBLIC_SYNCWORD" redefined
#define LORA_MAC_PUBLIC_SYNCWORD 0x34

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/lorawan_config.cpp:1:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:127: note: this is the location of the previous definition
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444

src/lorawan_config.cpp:8:1: error: 'SX126x' does not name a type; did you mean 'SX1261'?
SX126x Radio( RADIO_NSS, RADIO_BUSY, RADIO_DIO_1, RADIO_RESET );
^~~~~~
SX1261
*** [.pio/build/heltec_wireless_tracker/src/lorawan_config.cpp.o] Error 1
============================================================= [FAILED] Took 1.78 seconds =============================================================

  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

@danielaguirre708
Copy link
Author

/* Heltec Automation LoRaWAN communication example
*

  • Function:
    1. Upload node data to the server using the standard LoRaWAN protocol.
  • Description:
    1. Communicate using LoRaWAN protocol.
  • HelTec AutoMation, Chengdu, China
  • 成都惠利特自动化科技有限公司
  • www.heltec.org
  • */
    #include "heltec.h"
    #include "LoRaWan_APP.h"

/* OTAA para*/
uint8_t nodeDeviceEUI[8] = { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x06, 0xD0, 0x58 };
uint8_t nodeAppEUI[8] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 };
uint8_t nodeAppKey[16] = { 0xC1, 0x45, 0x0D, 0xEC, 0x75, 0x08, 0x76, 0x79,0x43, 0xCB, 0x0A, 0x8E, 0x35, 0x5F, 0x07, 0x4D };

/* ABP para*/
uint8_t nwkSKey[] = { 0x15, 0xb1, 0xd0, 0xef, 0xa4, 0x63, 0xdf, 0xbe, 0x3d, 0x11, 0x18, 0x1e, 0x1e, 0xc7, 0xda,0x85 };
uint8_t appSKey[] = { 0xd7, 0x2c, 0x78, 0x75, 0x8c, 0xdc, 0xca, 0xbf, 0x55, 0xee, 0x4a, 0x77, 0x8d, 0x16, 0xef,0x67 };
uint32_t devAddr = ( uint32_t )0x007e6ae1;

/LoraWan channelsmask, default channels 0-7/
uint16_t userChannelsMask[6]={ 0x00FF,0x0000,0x0000,0x0000,0x0000,0x0000 };

/LoraWan region, select in arduino IDE tools/
LoRaMacRegion_t loraWanRegion = ACTIVE_REGION;

/LoraWan Class, Class A and Class C are supported/
DeviceClass_t loraWanClass = CLASS_A;

/the application data transmission duty cycle. value in [ms]./
uint32_t appTxDutyCycle = 15000;

/OTAA or ABP/
bool overTheAirActivation = true;

/ADR enable/
bool loraWanAdr = true;

/* Indicates if the node is sending confirmed or unconfirmed messages */
bool isTxConfirmed = true;

/* Application port /
uint8_t appPort = 2;
/
!

  • Number of trials to transmit the frame, if the LoRaMAC layer did not
  • receive an acknowledgment. The MAC performs a datarate adaptation,
  • according to the LoRaWAN Specification V1.0.2, chapter 18.4, according
  • to the following table:
  • Transmission nb | Data Rate
  • ----------------|-----------
  • 1 (first) | DR
  • 2 | DR
  • 3 | max(DR-1,0)
  • 4 | max(DR-1,0)
  • 5 | max(DR-2,0)
  • 6 | max(DR-2,0)
  • 7 | max(DR-3,0)
  • 8 | max(DR-3,0)
  • Note, that if NbTrials is set to 1 or 2, the MAC will not decrease
  • the datarate, in case the LoRaMAC layer did not receive an acknowledgment
    */
    uint8_t confirmedNbTrials = 4;

/* Prepares the payload of the frame */
static void prepareTxFrame( uint8_t port )
{
/*appData size is LORAWAN_APP_DATA_MAX_SIZE which is defined in "commissioning.h".
*appDataSize max value is LORAWAN_APP_DATA_MAX_SIZE.
*if enabled AT, don't modify LORAWAN_APP_DATA_MAX_SIZE, it may cause system hanging or failure.
*if disabled AT, LORAWAN_APP_DATA_MAX_SIZE can be modified, the max value is reference to lorawan region and SF.
*for example, if use REGION_CN470,
*the max value for different DR can be found in MaxPayloadOfDatarateCN470 refer to DataratesCN470 and BandwidthsCN470 in "RegionCN470.h".
*/
appDataSize = 4;
appData[0] = 0x00;
appData[1] = 0x01;
appData[2] = 0x02;
appData[3] = 0x03;
}

//if true, next uplink will add MOTE_MAC_DEVICE_TIME_REQ

void setup() {
Serial.begin(115200);
Mcu.begin(HELTEC_BOARD,SLOW_CLK_TPYE);
}

void loop()
{
switch( deviceState )
{
case DEVICE_STATE_INIT:
{
#if(LORAWAN_DEVEUI_AUTO)
LoRaWAN.generateDeveuiByChipID();
#endif
LoRaWAN.init(loraWanClass,loraWanRegion);
//both set join DR and DR when ADR off
LoRaWAN.setDefaultDR(3);
break;
}
case DEVICE_STATE_JOIN:
{
LoRaWAN.join();
break;
}
case DEVICE_STATE_SEND:
{
prepareTxFrame( appPort );
LoRaWAN.send();
deviceState = DEVICE_STATE_CYCLE;
break;
}
case DEVICE_STATE_CYCLE:
{
// Schedule next packet transmission
txDutyCycleTime = appTxDutyCycle + randr( -APP_TX_DUTYCYCLE_RND, APP_TX_DUTYCYCLE_RND );
LoRaWAN.cycle(txDutyCycleTime);
deviceState = DEVICE_STATE_SLEEP;
break;
}
case DEVICE_STATE_SLEEP:
{
LoRaWAN.sleep(loraWanClass);
break;
}
default:
{
deviceState = DEVICE_STATE_INIT;
break;
}
}
}

@danielaguirre708
Copy link
Author

  • toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 36 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- Heltec ESP32 Dev-Boards @ 2.1.4
    Building in release mode
    Linking .pio/build/heltec_wireless_tracker/firmware.elf
    /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o):(.literal._ZN8McuClass5beginEhh+0x1c): undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o): in function McuClass::setSPIFrequency(unsigned long)':
    C:\Program Files (x86)\Arduino/E:\Documents\Arduino\libraries\Heltec_ESP32\src/ESP32_Mcu.cpp:578: undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x0): undefined reference to devEui'
    /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x4): undefined reference to appEui' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZL24OnTxNextPacketTimerEventv+0x8): undefined reference to appKey'
    /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZN12LoRaWanClass5sleepE12eDeviceClass+0x0): undefined reference to `Radio'
    collect2: error: ld returned 1 exit status
    *** [.pio/build/heltec_wireless_tracker/firmware.elf] Error 1
    ===================================== [FAILED] Took 3.40 seconds =====================================
  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

@aarroyave-mfl
Copy link

#pragma once

// OTAA
uint8_t devEui[] = { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x06, 0x53, 0xC8 };
uint8_t appEui[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
uint8_t appKey[] = { 0x74, 0xD6, 0x6E, 0x63, 0x45, 0x82, 0x48, 0x27, 0xFE, 0xC5, 0xB7, 0x70, 0xBA, 0x2B, 0x50, 0x45 };

// ABP
uint8_t nwkSKey[] = { ... };
uint8_t appSKey[] = { ... };
uint32_t devAddr = (uint32_t)0x007e6ae1;

// Masks y otras constantes
uint16_t userChannelsMask[6] = { 0x00FF, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 };

@danielaguirre708
Copy link
Author

rchiving .pio/build/heltec_wireless_tracker/libFrameworkArduino.a
Indexing .pio/build/heltec_wireless_tracker/libFrameworkArduino.a
Linking .pio/build/heltec_wireless_tracker/firmware.elf
/Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o):(.literal._ZN8McuClass5beginEhh+0x1c): undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/esp32s3/liblorawan.a(ESP32_Mcu.cpp.o): in function McuClass::setSPIFrequency(unsigned long)':
C:\Program Files (x86)\Arduino/E:\Documents\Arduino\libraries\Heltec_ESP32\src/ESP32_Mcu.cpp:578: undefined reference to RadioOnDioIrq' /Users/aguirre/.platformio/packages/toolchain-xtensa-esp32s3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: .pio/build/heltec_wireless_tracker/lib555/libHeltec ESP32 Dev-Boards.a(LoRaWan_APP.cpp.o):(.literal._ZN12LoRaWanClass5sleepE12eDeviceClass+0x0): undefined reference to Radio'
collect2: error: ld returned 1 exit status
*** [.pio/build/heltec_wireless_tracker/firmware.elf] Error 1
==================================== [FAILED] Took 10.74 seconds ====================================

  • The terminal process "platformio 'run', '--target', 'upload'" te

@aarroyave-mfl
Copy link

#include "radio.h"

// Definición de los eventos del Radio (vacío por ahora)
RadioEvents_t RadioEvents;

// Instancia global que el stack Heltec espera encontrar
RadioClass Radio(&RadioEvents);

// Función global esperada por Heltec (aunque no se use directamente en tu código)
extern "C" void RadioOnDioIrq(void) {
// Esto es requerido por el linker aunque esté vacío
}

@danielaguirre708
Copy link
Author

Compiling .pio/build/heltec_wireless_tracker/lib7f8/SPI/SPI.cpp.o
*** [.pio/build/heltec_wireless_tracker/src/radio_stub.cpp.o] Error 1
In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:141: warning: "LORA_MAC_PRIVATE_SYNCWORD" redefined
#define LORA_MAC_PRIVATE_SYNCWORD 0x12

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:122: note: this is the location of the previous definition
#define LORA_MAC_PRIVATE_SYNCWORD 0x1424

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:10,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/loramac/LoRaMac.h:146: warning: "LORA_MAC_PUBLIC_SYNCWORD" redefined
#define LORA_MAC_PUBLIC_SYNCWORD 0x34

In file included from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/ESP32_Mcu.h:13,
from .pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/LoRaWan_APP.h:8,
from src/main.cpp:15:
.pio/libdeps/heltec_wireless_tracker/Heltec ESP32 Dev-Boards/src/driver/sx126x.h:127: note: this is the location of the previous definition
#define LORA_MAC_PUBLIC_SYNCWORD 0x3444

===================================== [FAILED] Took 1.38 seconds =====================================

  • The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment