Author Archives: te-bachi

ELRS DIY ESP32 E28 2.4GHz TX – Build and Flash

esptool.py v4.2.1
Serial port COM20
Connecting...
.
.

Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: c8:2b:96:9e:a2:70
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0018ffff...
Warning: some reserved header fields have non-zero values. This image may be from a newer esptool.py?
Compressed 17536 bytes to 12203...
Writing at 0x00001000... (100 %)
Wrote 17536 bytes (12203 compressed) at 0x00001000 in 0.5 seconds (effective 274.9 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 511.6 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 688.0 kbit/s)...
Hash of data verified.
Compressed 1570820 bytes to 969826...
Writing at 0x00010000... (1 %)
Writing at 0x0001eaa1... (3 %)
Writing at 0x0002fd4c... (5 %)
Writing at 0x00034dbd... (6 %)
Writing at 0x00038dd8... (8 %)
Writing at 0x0003cc5d... (10 %)
Writing at 0x00046d1e... (11 %)
Writing at 0x00051bcd... (13 %)
Writing at 0x000591f0... (15 %)
Writing at 0x00063a0c... (16 %)
Writing at 0x0007725a... (18 %)
Writing at 0x0007ca9a... (20 %)
Writing at 0x000826f1... (21 %)
Writing at 0x000879c4... (23 %)
Writing at 0x0008d4fb... (25 %)
Writing at 0x000928cb... (26 %)
Writing at 0x00099275... (28 %)
Writing at 0x0009f03f... (30 %)
Writing at 0x000a4a82... (31 %)
Writing at 0x000aac56... (33 %)
Writing at 0x000b03a7... (35 %)
Writing at 0x000b622a... (36 %)
Writing at 0x000bc207... (38 %)
Writing at 0x000c1f67... (40 %)
Writing at 0x000c81c7... (41 %)
Writing at 0x000cdda8... (43 %)
Writing at 0x000d344a... (45 %)
Writing at 0x000d8754... (46 %)
Writing at 0x000ddb14... (48 %)
Writing at 0x000e3010... (50 %)
Writing at 0x000e8624... (51 %)
Writing at 0x000edfde... (53 %)
Writing at 0x000f3b96... (55 %)
Writing at 0x000f8d78... (56 %)
Writing at 0x000fe112... (58 %)
Writing at 0x00103236... (60 %)
Writing at 0x00108982... (61 %)
Writing at 0x0010db08... (63 %)
Writing at 0x00112dcc... (65 %)
Writing at 0x001188d3... (66 %)
Writing at 0x0011def2... (68 %)
Writing at 0x0012381f... (70 %)
Writing at 0x001292b7... (71 %)
Writing at 0x0012f519... (73 %)
Writing at 0x00134d5c... (75 %)
Writing at 0x0013a262... (76 %)
Writing at 0x0013f7e1... (78 %)
Writing at 0x001450aa... (80 %)
Writing at 0x0014adfa... (81 %)
Writing at 0x0014ffc1... (83 %)
Writing at 0x0015520a... (85 %)
Writing at 0x0015b06c... (86 %)
Writing at 0x001636c9... (88 %)
Writing at 0x0016c14d... (90 %)
Writing at 0x00172161... (91 %)
Writing at 0x0017757a... (93 %)
Writing at 0x0017cd31... (95 %)
Writing at 0x00182d09... (96 %)
Writing at 0x001880ee... (98 %)
Writing at 0x0018ddf1... (100 %)
Wrote 1570820 bytes (969826 compressed) at 0x00010000 in 22.1 seconds (effective 569.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Java Resource

log.debug("log1 = {}", Server.class.getResource("keystore.jks"));
log.debug("log2 = {}", Server.class.getResource("/keystore.jks"));
log.debug("log3 = {}", getClass().getResource("keystore.jks"));
log.debug("log4 = {}", getClass().getResource("/keystore.jks"));
log.debug("log5 = {}", getClass().getClassLoader().getResource("keystore.jks"));
log.debug("log6 = {}", getClass().getClassLoader().getResource("/keystore.jks"));
15:46:10.008 [main] DEBUG com.server.lib.Server -- log1 = null
15:46:10.015 [main] DEBUG com.server.lib.Server -- log2 = file:/C:/Dev/gitRepositories/SimpleWebServer/target/classes/keystore.jks
15:46:10.015 [main] DEBUG com.server.lib.Server -- log3 = null
15:46:10.016 [main] DEBUG com.server.lib.Server -- log4 = file:/C:/Dev/gitRepositories/SimpleWebServer/target/classes/keystore.jks
15:46:10.016 [main] DEBUG com.server.lib.Server -- log5 = file:/C:/Dev/gitRepositories/SimpleWebServer/target/classes/keystore.jks
15:46:10.017 [main] DEBUG com.server.lib.Server -- log6 = null

Findings…

  • class.getResource() or getClass().getResource() with slash
  • getClass().getClassLoader().getResource without slash

Java Simple HTTP Server

Without SSL/TLS

github.com/rjlfinn/java-http-server

With SSL/TLS

Simple Java HTTPS server
Java Network Programming, 4th Edition
SSL Handshake Failures

Do javax.net.ssl.* VM arguments need to be migrated to jakarta.net.ssl.*?
How does Javas KeyManagerFactory.init work with multiple keys
What is SunX509 used for and can it work with parties using IbmX509?
What is the difference of TrustManager PKIX and SunX509?

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://localhost:8585/testOne": PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  • because of self-signed cert???

“PKIX path building failed” and “unable to find valid certification path to requested target”
Accept server’s self-signed ssl certificate in Java client
Keytool’s -storepass vs. -keypass — Why 2 passwords?

Introduction to SSL in Java

In case we get the error “javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target while establishing the SSL connection”, it indicates that we don’t have the public certificate of the server which we’re trying to connect in the Java truststore.

$ find /c/Program\ Files/choco/openjdk-jdk-17 -name "*cacert*"
/c/Program Files/choco/openjdk-jdk-17/lib/security/cacerts

$ keytool -list -v -keystore  /c/Program\ Files/choco/openjdk-jdk-17/lib/security/cacerts
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 111 entries
[...]

$ pwd
/c/gitRepositories/SimpleWebServer/src/main/resources

$ keytool -list -v -keystore keystore.jks -storepass pass_for_self_signed_cert
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: selfsigned
Creation date: Nov 25, 2024
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Issuer: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Serial number: f771d2346ba5c42b
Valid from: Mon Nov 25 15:31:14 CET 2024 until: Sun Feb 23 15:31:14 CET 2025
Certificate fingerprints:
         SHA1: DA:6D:B0:C4:F4:6E:65:45:AB:3E:AC:C3:9B:AD:25:30:B6:AD:21:CF
         SHA256: 81:94:78:29:23:13:1B:73:B3:D2:5A:B1:5B:24:77:85:34:F1:FD:BA:92:F6:34:12:DC:4F:88:50:7F:1B:3A:51
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4D 9B 90 29 EB 60 D7 7F   21 28 46 B2 FA 8E 58 5C  M..).`..!(F...X\
0010: D9 23 F1 98                                        .#..
]
]



*******************************************
*******************************************

$ keytool -import -v -trustcacerts -alias localhost-2 -file localhost.crt -keystore /c/Program\ Files/choco/openjdk-jdk-17/lib/security/cacerts -storepass changeit -keypass changeit
Owner: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Issuer: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Serial number: f771d2346ba5c42b
Valid from: Mon Nov 25 15:31:14 CET 2024 until: Sun Feb 23 15:31:14 CET 2025
Certificate fingerprints:
         SHA1: DA:6D:B0:C4:F4:6E:65:45:AB:3E:AC:C3:9B:AD:25:30:B6:AD:21:CF
         SHA256: 81:94:78:29:23:13:1B:73:B3:D2:5A:B1:5B:24:77:85:34:F1:FD:BA:92:F6:34:12:DC:4F:88:50:7F:1B:3A:51
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4D 9B 90 29 EB 60 D7 7F   21 28 46 B2 FA 8E 58 5C  M..).`..!(F...X\
0010: D9 23 F1 98                                        .#..
]
]

Trust this certificate? [no]:  yes
Certificate was added to keystore
[Storing C:/Program Files/choco/openjdk-jdk-17/lib/security/cacerts]
keytool error: java.io.FileNotFoundException: C:\Program Files\choco\openjdk-jdk-17\lib\security\cacerts (Access is denied)
java.io.FileNotFoundException: C:\Program Files\choco\openjdk-jdk-17\lib\security\cacerts (Access is denied)
        at java.base/java.io.FileOutputStream.open0(Native Method)
        at java.base/java.io.FileOutputStream.open(FileOutputStream.java:293)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:235)
        at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:123)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1375)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:423)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:416)


(admin)
$ keytool -import -v -trustcacerts -alias localhost-2 -file localhost.crt -keystore /c/Program\ Files/choco/openjdk-jdk-17/lib/security/cacerts -storepass changeit -keypass changeit
Owner: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Issuer: CN=localhost, OU=Developers, O=Bull Bytes, L=Linz, C=AT
Serial number: f771d2346ba5c42b
Valid from: Mon Nov 25 15:31:14 CET 2024 until: Sun Feb 23 15:31:14 CET 2025
Certificate fingerprints:
         SHA1: DA:6D:B0:C4:F4:6E:65:45:AB:3E:AC:C3:9B:AD:25:30:B6:AD:21:CF
         SHA256: 81:94:78:29:23:13:1B:73:B3:D2:5A:B1:5B:24:77:85:34:F1:FD:BA:92:F6:34:12:DC:4F:88:50:7F:1B:3A:51
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 4D 9B 90 29 EB 60 D7 7F   21 28 46 B2 FA 8E 58 5C  M..).`..!(F...X\
0010: D9 23 F1 98                                        .#..
]
]

Trust this certificate? [no]:  yes
Certificate was added to keystore
[Storing C:/Program Files/choco/openjdk-jdk-17/lib/security/cacerts]


Reading from an SSL input stream (Java)

How to tell if Java SSLSocket has data available?

There is no way to do this. Your streams cannot tell you the length of the data without first decrypting it. available() will always return 0 for SSLSocket.

sslsocket read only once from inputstream,why?

Getting an InputStream from an SSLSocket

available() doesn’t do what you think it does; don’t rely on it. For SSLSockets, available() is even less reliable. From the JSSE Ref Guide:

“Implementation Note: Due to the complexity of the SSL and TLS protocols, it is difficult to predict whether incoming bytes on a connection are handshake or application data, and how that data might affect the current connection state (even causing the process to block). In the Sun JSSE implementation, the available() method on the object obtained by SSLSocket.getInputStream() returns a count of the number of application data bytes successfully decrypted from the SSL connection but not yet read by the application.”

My experience is that this generally maps to “0”.

Arduino Kalman Filter

CarbonAeronautics

Carbon Aeronautics Drone

github.com/CarbonAeronautics
, Quadcopter build and programming manual

Build and program this Arduino drone yourself!
0 | You can build a drone with less than 40 components
14 | Measure angles with the MPU6050 accelerometer
15 | Combine a gyroscope and accelerometer to measure angles – precisely
16 | Program an angle mode flight controller in Arduino

Machine Learning TV

Kalman Filter – Part 1

ExpressLRS Unified_ESP32_2400_TX_via_UART

3.5.2

 *  Executing task: C:\Users\andreas\.platformio\penv\Scripts\platformio.exe run --environment Unified_ESP32_2400_TX_via_UART 

Processing Unified_ESP32_2400_TX_via_UART (platform: espressif32@6.4.0; board: esp32dev; framework: arduino)
------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option

build flags: ['-D PLATFORM_ESP32=1', '-D CONFIG_TCPIP_LWIP=1', '-D BEARSSL_SSL_BASIC', '-D CONFIG_DISABLE_HAL_LOCKS=1', '-I ${PROJECTSRC_DIR}/hal', '-DRADIO_SX128X=1', '-DTARGET_TX=1 -Wall -Iinclude', '-include target/Unified_ESP32_TX.h', '-D VTABLES_IN_FLASH=1', '-O2', '-DRegulatory_Domain_EU_CE_2400', '-DLOCK_ON_FIRST_CONNECTION', '-DAUTO_WIFI_ON_INTERVAL=60', '-DLATEST_COMMIT=55,97,99,53,102,52', '-DLATEST_VERSION=51,46,53,46,50', '-DTARGET_NAME=UNIFIED_ESP32_2400_TX']

Building for ESP32 Platform
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.4.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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.20011.230801 (2.0.11) 
 - tool-esptoolpy @ 1.40501.0 (4.5.1) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 94 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ESPAsyncWebServer-esphome @ 3.0.0
|-- AsyncTCP-esphome @ 2.0.1
|-- ESP32-BLE-Gamepad @ 0.5.2
|-- NimBLE-Arduino @ 1.4.1
|-- ArduinoJson @ 7.0.4
|-- c_library_v2 @ 0.0.0+20241121205304.sha.e54a8d2e
|-- GFX Library for Arduino @ 1.2.8
|-- U8g2 @ 2.34.4
|-- SPIFFS @ 2.0.0
|-- OTA
|-- SX1280Driver
|-- Handset
|-- LBT
|-- DEVICE
|-- CRSF2MSP
|-- Telemetry
|-- FIFO
|-- CONFIG
|-- MSPVTX
|-- MSP
|-- logging
|-- Wire @ 2.0.0
|-- Backpack
|-- BLE
|-- BUTTON
|-- BUZZER
|-- GSENSOR
|-- LED
|-- LUA
|-- POWER_DETECT
|-- SCREEN
|-- THERMAL
|-- VTX
|-- WIFI
|-- MAVLink
|-- StubbornReceiver
|-- StubbornSender
|-- TelemetryProtocol
|-- MeanAccumulator
|-- POWERMGNT
|-- CRC
|-- FHSS
|-- HWTIMER
|-- LQCALC
Building in release mode
PLATFORM : 'espressif32'
BUILD ENV: 'UNIFIED_ESP32_2400_TX_VIA_UART'
build version: 3.5.2 (7ac5f4) None


Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\common.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\dynpower.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\hal\hal_stm32.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialAirPort.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialCRSF.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialHoTT_TLM.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialIO.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialMavlink.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialSBUS.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialSUMD.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialSmartAudio.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\SerialTramp.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rx-serial\devSerialIO.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\rxtx_common.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\src\tx_main.cpp.o
Building .pio\build\Unified_ESP32_2400_TX_via_UART\bootloader.bin
Generating partitions .pio\build\Unified_ESP32_2400_TX_via_UART\partitions.bin
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba6a\AsyncTCP-esphome@2.0.1\AsyncTCP.cpp.o
esptool.py v4.5.1
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib1ea\FS\FS.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib1ea\FS\vfs_api.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFi.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiAP.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiClient.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiGeneric.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiMulti.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiSTA.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiScan.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiServer.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\liba6a\libAsyncTCP-esphome@2.0.1.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib1ea\libFS.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\WiFi\WiFiUdp.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib1ea\libFS.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\liba6a\libAsyncTCP-esphome@2.0.1.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\AsyncEventSource.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\AsyncWebSocket.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\WebAuthentication.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\WebHandlers.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\WebRequest.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\WebResponses.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\ESPAsyncWebServer-esphome\WebServer.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLE2904.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEAddress.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEAdvertisedDevice.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEAdvertising.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\libWiFi.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f4\libWiFi.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEBeacon.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLECharacteristic.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEClient.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEDescriptor.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEDevice.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEEddystoneTLM.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEEddystoneURL.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEExtAdvertising.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEHIDDevice.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLERemoteCharacteristic.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLERemoteDescriptor.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLERemoteService.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\libESPAsyncWebServer-esphome.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEScan.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLESecurity.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEServer.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEService.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEUUID.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libf8e\libESPAsyncWebServer-esphome.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\NimBLEUtils.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\esp_port\esp-hci\src\esp_nimble_hci.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\esp_port\port\src\esp_nimble_mem.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\aes_decrypt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\aes_encrypt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\cbc_mode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ccm_mode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\cmac_mode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ctr_mode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ctr_prng.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ecc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ecc_dh.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ecc_dsa.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\ecc_platform_specific.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\hmac.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\hmac_prng.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\sha256.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\ext\tinycrypt\src\utils.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_adv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_conn.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_conn_hci.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_ctrl.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_dtm.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_hci.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_hci_ev.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_iso.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_rand.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_resolv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_rfmgmt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_scan.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_sched.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_supp_cmd.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_sync.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_trace.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_utils.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\controller\src\ble_ll_whitelist.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\drivers\nrf51\src\ble_hw.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\drivers\nrf51\src\ble_phy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\drivers\nrf52\src\ble_hw.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\drivers\nrf52\src\ble_phy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\drivers\nrf52\src\ble_phy_trace.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\access.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\adv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\aes-ccm.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\app_keys.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\beacon.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\cdb.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\cfg.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\cfg_cli.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\cfg_srv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\crypto.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\friend.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\glue.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\health_cli.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\health_srv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\heartbeat.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\light_model.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\lpn.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\mesh.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\model_cli.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\model_srv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\net.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\nodes.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\pb_adv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\pb_gatt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\prov.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\prov_device.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\provisioner.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\proxy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\rpl.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\settings.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\shell.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\subnet.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\mesh\src\transport.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\ans\src\ble_svc_ans.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\bas\src\ble_svc_bas.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\dis\src\ble_svc_dis.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\gap\src\ble_svc_gap.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\gatt\src\ble_svc_gatt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\ias\src\ble_svc_ias.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\ipss\src\ble_svc_ipss.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\services\lls\src\ble_svc_lls.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_att.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_att_clt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_att_cmd.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_att_svr.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_eddystone.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_gap.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_gattc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_gatts.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_gatts_lcl.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_adv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_atomic.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_cfg.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_conn.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_flow.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_hci.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_hci_cmd.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_hci_evt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_hci_util.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_id.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_log.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_mbuf.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_misc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_mqueue.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_periodic_sync.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_pvcy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_resolv.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_shutdown.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_startup.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_hs_stop.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_ibeacon.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_l2cap.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_l2cap_coc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_l2cap_sig.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_l2cap_sig_cmd.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_monitor.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_sm.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_sm_alg.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_sm_cmd.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_sm_lgcy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_sm_sc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_store.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_store_util.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\src\ble_uuid.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\store\config\src\ble_store_config.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\store\config\src\ble_store_config_conf.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\store\config\src\ble_store_nvs.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\host\util\src\addr.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\nimble\transport\ram\src\ble_hci_ram.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\endian.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\hal_timer.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\hal_uart.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\mem.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\nimble_port.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\os_cputime.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\os_cputime_pwr2.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\os_mbuf.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\os_mempool.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\nimble\src\os_msys_init.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\npl\freertos\src\nimble_port_freertos.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\NimBLE-Arduino@1.4.1\nimble\porting\npl\freertos\src\npl_os_freertos.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc4e\ESP32-BLE-Gamepad\BleConnectionStatus.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc4e\ESP32-BLE-Gamepad\BleGamepad.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc4e\ESP32-BLE-Gamepad\BleGamepadConfiguration.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbe4\SPI\SPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libf14\Wire\Wire.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\U8g2lib.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\U8x8lib.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\mui.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\mui_u8g2.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_bitmap.c.o
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp: In constructor 'BleGamepadConfiguration::BleGamepadConfiguration()':
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp:21:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
                                                      _hardwareRevision("1.0.0")
                                                                               ^
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp:21:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp:21:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp:21:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESP32-BLE-Gamepad/BleGamepadConfiguration.cpp:21:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_box.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_buffer.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_button.c.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libbe4\libSPI.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_circle.c.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libc4e\libESP32-BLE-Gamepad.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_cleardisplay.c.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libf14\libWire.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_d_memory.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_d_setup.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_font.c.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\libNimBLE-Arduino@1.4.1.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libbe4\libSPI.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libf14\libWire.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libc4e\libESP32-BLE-Gamepad.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib939\libNimBLE-Arduino@1.4.1.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_fonts.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_hvline.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_input_value.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_intersection.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_kerning.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_line.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_ll_hvline.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_message.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_polygon.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_selection_list.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8g2_setup.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8log.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8log_u8g2.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8log_u8x8.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_8x8.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_byte.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_cad.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_capture.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_a2printer.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_gp1247ai.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_gp1287ai.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_gu800.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_hd44102.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_il3820_296x128.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ist3020.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ist3088.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ist7920.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ks0108.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_lc7981.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ld7032_60x32.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ls013b7dh03.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_max7219.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_pcd8544_84x48.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_pcf8812.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_pcf8814_hx1230.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_s1d15721.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_s1d15e06.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sbn1661.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sed1330.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sh1106_64x32.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sh1106_72x40.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sh1107.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sh1108.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_sh1122.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1305.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_128x32.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_128x64_noname.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_2040x16.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_48x64.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_64x32.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_64x48.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_72x40.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_96x16.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1306_96x40.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1309.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1316.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1317.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1318.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1320.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1322.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1325.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1326.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1327.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1329.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1606_172x72.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_ssd1607_200x200.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7511.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st75160.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st75256.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7528.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st75320.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7565.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7567.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7571.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7586s_erc240160.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7586s_jlx384160.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7586s_s028hn118a.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7586s_ymc240160.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7588.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_st7920.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_t6963.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1601.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1604.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1608.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1609.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1610.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1611.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1617.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1638.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1701_dogs102.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_d_uc1701_mini12864.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_debounce.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_display.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_fonts.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_gpio.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_input_value.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_message.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_selection_list.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_setup.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_string.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_u16toa.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\U8g2\clib\u8x8_u8toa.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_DataBus.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_G.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_GFX.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_GFX_Library.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\libU8g2.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_TFT.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\Arduino_TFT_18bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\canvas\Arduino_Canvas.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\canvas\Arduino_Canvas_3bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\canvas\Arduino_Canvas_Indexed.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\canvas\Arduino_Canvas_Mono.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_AVRPAR8.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\liba62\libU8g2.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32LCD16.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32LCD8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR16.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR16Q.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR16QQ.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR8Q.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32PAR8QQ.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32RGBPanel.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32S2PAR16.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32S2PAR16Q.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32S2PAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32S2PAR8Q.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP32SPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_ESP8266SPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_HWSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_NRFXSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_RPiPicoPAR16.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_RPiPicoPAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_RPiPicoSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_RTLPAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_STM32PAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_SWPAR8.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_SWSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\databus\Arduino_mbedSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_GC9106.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_GC9107.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_GC9503V_RGBPanel.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_GC9A01.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_HX8347C.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_HX8347D.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_HX8352C.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_HX8357A.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_HX8357B.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9225.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9331.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9341.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9342.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9481_18bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9486.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9486_18bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9488.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9488_18bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9488_3bit.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ILI9806.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_JBT6K71.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_NT35310.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_NT35510.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_NT39125.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_R61529.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_RPi_DPI_RGBPanel.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_SEPS525.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_SSD1283A.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_SSD1331.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_SSD1351.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ST7701_RGBPanel.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ST7735.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ST7789.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\GFX Library for Arduino\display\Arduino_ST7796.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libec2\SPIFFS\SPIFFS.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib44d\CRC\crc.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib8cd\logging\logging.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f1\OPTIONS\EspFlashStream.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f1\OPTIONS\hardware.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f1\OPTIONS\options.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libec2\libSPIFFS.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc38\CrsfProtocol\dummy.c.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libec2\libSPIFFS.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f6\MSP\msp.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib44d\libCRC.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib1d7\TelemetryProtocol\dummy.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib95f\FEC\FEC.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib8cd\liblogging.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib44d\libCRC.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libc38\libCrsfProtocol.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib95f\FEC\hamming.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib8cd\liblogging.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libc38\libCrsfProtocol.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe01\RFAMP\RFAMP_hal.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib95f\libFEC.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib95f\libFEC.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib978\SPIEx\SPIEx.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libff6\SX1280Driver\SX1280.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f6\libMSP.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libff6\SX1280Driver\SX1280_hal.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib0f6\libMSP.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib80d\DEVICE\device.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5da\DAC\DAC.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib823\POWERMGNT\POWERMGNT.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib978\libSPIEx.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libe01\libRFAMP.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib978\libSPIEx.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libe01\libRFAMP.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\Handset\AutoDetect.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\Handset\CRSF.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\Handset\CRSFHandset.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib80d\libDEVICE.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib80d\libDEVICE.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib5da\libDAC.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\Handset\PPMHandset.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib5da\libDAC.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\Handset\devHandset.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libacf\OTA\OTA.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib823\libPOWERMGNT.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib823\libPOWERMGNT.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib84b\LBT\LBT.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\libGFX Library for Arduino.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f8\CRSF2MSP\crsf2msp.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f8\CRSF2MSP\msp2crsf.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libb0b\HWTIMER\ESP32_hwTimer.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\libHandset.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib1d7\libTelemetryProtocol.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libb0b\HWTIMER\ESP8266_hwTimer.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libb0b\HWTIMER\STM32_hwTimer.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libc0e\libGFX Library for Arduino.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libbcb\libHandset.a
lib/OPTIONS/options.cpp: In function 'void saveOptions(Stream&, bool)':
lib/OPTIONS/options.cpp:216:52: warning: 'ArduinoJson::V704PB2::JsonArray ArduinoJson::V704PB2::JsonDocument::createNestedArray(TChar*) [with TChar = const char]' is deprecated: use doc[key].to<JsonArray>() instead [-Wdeprecated-declarations]
         JsonArray uid = doc.createNestedArray("uid");
                                                    ^
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.h:9,
                 from lib/OPTIONS/options.cpp:183:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:305:13: note: declared here
   JsonArray createNestedArray(TChar* key) {
             ^~~~~~~~~~~~~~~~~
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\PWM\PWM.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libacf\libOTA.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\PWM\PWM_ESP32.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib84b\libLBT.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libacf\libOTA.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib84b\libLBT.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\PWM\PWM_ESP8266.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f8\libCRSF2MSP.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\PWM\waveform_8266.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f8\libCRSF2MSP.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe55\VTXSPI\devVTXSPI.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib79e\MSPVTX\devMSPVTX.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib79e\MSPVTX\freqTable.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libc6c\TCPSOCKET\tcpsocket.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libe55\libVTXSPI.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libe55\libVTXSPI.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib795\Telemetry\telemetry.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libff6\libSX1280Driver.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f1\libOPTIONS.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib5f1\libOPTIONS.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libff6\libSX1280Driver.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib28c\EEPROM\EEPROM.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libc6c\libTCPSOCKET.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\libPWM.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libc6c\libTCPSOCKET.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib9a2\libPWM.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib316\elrs_eeprom\elrs_eeprom.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib841\CONFIG\config.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib79e\libMSPVTX.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib79e\libMSPVTX.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libfee\MAVLink\MAVLink.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib07c\Backpack\devBackpack.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib795\libTelemetry.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib795\libTelemetry.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib8a5\BUTTON\devButton.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib316\libelrs_eeprom.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib28c\libEEPROM.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib316\libelrs_eeprom.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib28c\libEEPROM.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib2d1\BLE\devBLE.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib941\BUZZER\devBuzzer.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib841\libCONFIG.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib1d7\libTelemetryProtocol.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib841\libCONFIG.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib620\GSENSOR\devGsensor.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib620\GSENSOR\gsensor.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib620\GSENSOR\stk8baxx.cpp.o
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/common.h:2717,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/mavlink.h:32,
                 from lib/MAVLink/MAVLink.h:4,
                 from lib/MAVLink/MAVLink.cpp:1:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h: In function 'uint16_t buildMAVLinkELRSModeChange(uint8_t, uint8_t*)':
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:207: warning: 'commandMsg.__mavlink_command_int_t::autocontinue' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
   ~~~~~~~~~~~~~^~~~~~~~~~~~
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:143: warning: '*((void*)& commandMsg +32)' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                  ~~~~~~~~~~~~~^~~~~
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/common.h:2717,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/mavlink.h:32,
                 from lib/MAVLink/MAVLink.h:4,
                 from lib/MAVLink/MAVLink.cpp:1:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:276: warning: 'commandMsg.__mavlink_command_int_t::param3' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
                                                                        ~~~~~~~~~~~~~^~~~~~
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:297: warning: 'commandMsg.__mavlink_command_int_t::param4' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
                                                                                             ~~~~~~~~~~~~~^~~~~~
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:318: warning: 'commandMsg.__mavlink_command_int_t::x' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
                                                                                                                  ~~~~~~~~~~~~~^
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:334: warning: 'commandMsg.__mavlink_command_int_t::y' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
                                                                                                                                  ~~~~~~~~~~~~~^
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/c_library_v2/common/./mavlink_msg_command_int.h:282:350: warning: 'commandMsg.__mavlink_command_int_t::z' is used uninitialized in this function [-Wuninitialized]
     return mavlink_msg_command_int_pack(system_id, component_id, msg, command_int->target_system, command_int->target_component, command_int->frame, command_int->command, command_int->current, command_int->autocontinue, command_int->param1, command_int->param2, command_int->param3, command_int->param4, command_int->x, command_int->y, command_int->z);
                                                                                                                                                                                               
                                                                                                                                                  ~~~~~~~~~~~~~^
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib483\LED\devLED.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libb0b\libHWTIMER.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libfee\libMAVLink.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib483\LED\devRGB.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libb0b\libHWTIMER.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libfee\libMAVLink.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib483\LED\esp32rgb.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib07c\libBackpack.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib8a5\libBUTTON.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib8a5\libBUTTON.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib07c\libBackpack.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libff3\FHSS\FHSS.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libff3\FHSS\random.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\LUA\lua.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib2d1\libBLE.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib941\libBUZZER.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\LUA\rx_devLUA.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\LUA\rxtx_devLua.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\LUA\tx_devLUA.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib2d1\libBLE.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib941\libBUZZER.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib6c4\POWER_DETECT\devPDET.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib483\libLED.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libff3\libFHSS.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib620\libGSENSOR.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib483\libLED.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libff3\libFHSS.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib620\libGSENSOR.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\THERMAL\devThermal.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\THERMAL\lm75a.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\THERMAL\rpm.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\THERMAL\thermal.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\FiveWayButton\FiveWayButton.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\OLED\oleddisplay.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\TFT\tftdisplay.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\devScreen.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\display.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\fsm.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\libLUA.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib6c4\libPOWER_DETECT.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib6c4\libPOWER_DETECT.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libe02\libLUA.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\SCREEN\menu.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib801\VTX\devVTX.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libb42\DNSServer\DNSServer.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib5fa\ESPmDNS\ESPmDNS.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib75c\Update\HttpsOTAUpdate.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib75c\Update\Updater.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libcd6\WIFI\devWIFI.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libb42\libDNSServer.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib801\libVTX.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libcd6\WIFI\lr1121.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libcd6\WIFI\wifiJoystick.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\lib439\StubbornReceiver\stubborn_receiver.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libb42\libDNSServer.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib801\libVTX.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib5fa\libESPmDNS.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\libfaf\StubbornSender\stubborn_sender.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib5fa\libESPmDNS.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\Esp.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib75c\libUpdate.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\FirmwareMSC.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib439\libStubbornReceiver.a
In file included from lib/SCREEN/OLED/oleddisplay.cpp:7:
lib/SCREEN/OLED/XBMStrings.h:138:24: warning: 'elrs64' defined but not used [-Wunused-variable]
   static unsigned char elrs64[] = {
                        ^~~~~~
lib/SCREEN/OLED/XBMStrings.h:121:24: warning: 'elrs32' defined but not used [-Wunused-variable]
   static unsigned char elrs32[] = {
                        ^~~~~~
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib75c\libUpdate.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib439\libStubbornReceiver.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\HWCDC.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libfaf\libStubbornSender.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\HardwareSerial.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libfaf\libStubbornSender.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\Print.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\Stream.cpp.o
In file included from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:88:25: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
     DynamicJsonDocument _jsonBuffer;
                         ^~~~~~~~~~~
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:37,
                 from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
                                                          ^~~~~~~~~~~~~~~~~~~
In file included from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h: In constructor 'AsyncJsonResponse::AsyncJsonResponse(bool, size_t)':
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:110:47: warning: 'ArduinoJson::V704PB2::JsonArray ArduinoJson::V704PB2::JsonDocument::createNestedArray()' is deprecated: use add<JsonArray>() instead [-Wdeprecated-declarations]
         _root = _jsonBuffer.createNestedArray();
                                               ^
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:37,
                 from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:298:13: note: declared here
   JsonArray createNestedArray() {
             ^~~~~~~~~~~~~~~~~
In file included from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:112:48: warning: 'ArduinoJson::V704PB2::JsonObject ArduinoJson::V704PB2::JsonDocument::createNestedObject()' is deprecated: use add<JsonObject>() instead [-Wdeprecated-declarations]
         _root = _jsonBuffer.createNestedObject();
                                                ^
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:37,
                 from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:318:14: note: declared here
   JsonObject createNestedObject() {
              ^~~~~~~~~~~~~~~~~~
In file included from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h: In member function 'virtual void AsyncCallbackJsonWebHandler::handleRequest(AsyncWebServerRequest*)':   
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:224:39: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
         DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize);
                                       ^
In file included from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/Unified_ESP32_2400_TX_via_UART/ESPAsyncWebServer-esphome/src/AsyncJson.h:37,
                 from lib/WIFI/devWIFI.cpp:7:
.pio/libdeps/Unified_ESP32_2400_TX_via_UART/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
                                                          ^~~~~~~~~~~~~~~~~~~
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\libTHERMAL.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\Tone.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libaee\libTHERMAL.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\USB.cpp.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\libSCREEN.a
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libcd6\libWIFI.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\WString.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\base64.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\cbuf.cpp.o
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libcd6\libWIFI.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\lib7c8\libSCREEN.a
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-spi.c.o
C:/Users/andreas/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-rmt.c:105:25: warning: 'g_rmt_objlocks' defined but not used [-Wunused-variable]
 static xSemaphoreHandle g_rmt_objlocks[MAX_CHANNELS] = {
                         ^~~~~~~~~~~~~~
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\firmware_msc_fat.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\main.cpp.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\Unified_ESP32_2400_TX_via_UART\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\Unified_ESP32_2400_TX_via_UART\libFrameworkArduino.a
Indexing .pio\build\Unified_ESP32_2400_TX_via_UART\libFrameworkArduino.a
Linking .pio\build\Unified_ESP32_2400_TX_via_UART\firmware.elf
Retrieving maximum program size .pio\build\Unified_ESP32_2400_TX_via_UART\firmware.elf
Checking size .pio\build\Unified_ESP32_2400_TX_via_UART\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  21.0% (used 68732 bytes from 327680 bytes)
Flash: [========  ]  79.5% (used 1563701 bytes from 1966080 bytes)
copyBootApp0bin([".pio\build\Unified_ESP32_2400_TX_via_UART\firmware.bin"], [".pio\build\Unified_ESP32_2400_TX_via_UART\firmware.elf"])
Building .pio\build\Unified_ESP32_2400_TX_via_UART\firmware.bin
esptool.py v4.5.1
Creating esp32 image...
Merged 25 ELF sections
Successfully created esp32 image.
appendConfiguration([".pio\build\Unified_ESP32_2400_TX_via_UART\firmware.bin"], [".pio\build\Unified_ESP32_2400_TX_via_UART\firmware.elf"])
1) AXIS Thor 2.4GHz TX
2) BETAFPV 2.4GHz Nano TX
3) BETAFPV 2.4GHz Nano TX V2
4) BETAFPV 2.4GHz Micro TX
5) BETAFPV 2.4GHz 1W Micro TX
6) BETAFPV 2.4GHz LiteRadio 3 Pro
7) BETAFPV SuperG 2.4GHz Gemini TX
8) DIY Mini ESP32 SX1280 2.4GHz TX
9) DIY ESP32 E28 2.4GHz TX
10) DIY ESP32 F27 2.4GHz TX
11) DIY ESP32 BLE Joystick TX
12) EMAX OLED 2.4GHz TX
13) EMAX Nano 2.4GHz TX
14) Generic Full-duplex 2.4GHz TX
15) Generic ESP32 2.4Ghz Gemini TX
16) HappyModel ES24 2.4GHz TX
17) HappyModel ES24 Pro 2.4GHz TX
18) HappyModel ES24 Slim Pro 2.4GHz TX
19) HELLORADIO V16 Internal 2.4GHz TX
20) HGLRC Hermes 2.4GHz TX
21) iFlight 2.4GHz TX
22) iFlight 2.4GHz TX V2
23) Jumper AION T-20 2.4GHz TX
24) Jumper AION T-20 2.4GHz V2 TX
25) Jumper AION T-ProS 2.4GHz TX
26) Jumper AION T-15 2.4GHz TX
27) Jumper AION T-14 2.4GHz TX
28) Jumper Gemini T-20 2.4GHz TX
29) Jumper AION T-Pro 2.4GHz TX
30) Jumper AION T-Lite 2.4GHz TX
31) Jumper AION Nano 2.4GHz TX
32) NamimnoRC Flash OLED 2.4GHz TX
33) QuadKopters JR 2.4GHz TX
34) QuadKopters Slim 2.4GHz TX
35) RadioMaster Zorro Internal 2.4GHz TX
36) RadioMaster Pocket Internal 2.4GHz TX
37) RadioMaster MT12 Internal 2.4GHz TX
38) RadioMaster TX16S Internal 2.4GHz TX
39) RadioMaster TX12 Internal 2.4GHz TX
40) RadioMaster Ranger 2.4GHz TX
41) RadioMaster Ranger Micro 2.4GHz TX
42) RadioMaster Ranger Nano 2.4GHz TX
43) RadioMaster Boxer Internal 2.4GHz TX
44) Vantac Lite 2.4GHz TX
Choose a configuration to load into the firmware file (press enter to leave bare)
9
============================== [SUCCESS] Took 334.01 seconds ==============================

Environment                     Status    Duration
------------------------------  --------  ------------
Unified_ESP32_2400_TX_via_UART  SUCCESS   00:05:34.005
============================== 1 succeeded in 00:05:34.005 ==============================
 *  Terminal will be reused by tasks, press any key to close it. 

Pistolengriff Fernsteuerung (Funke) / Pistol Grip Remote Control (Radio)


Sparkfun

General

Accelerometer, Gyro and IMU Buying Guide
Products for Movement – IMU

SparkFun 9DoF Razor IMU M0 – MPU-9250

  • SAMD21 (32-bit ARM Cortex-M0+)
  • MPU-9250

SparkFun 9DoF Razor IMU M0
9DoF Razor IMU M0 Hookup Guide
github.com/sparkfun/9DOF_Razor_IMU/, 9DOF Razor IMU available from SparkFun Electronics
github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library, Arduino library for the MPU-9250 enabling its digital motion process (DMP) features.

SparkFun 9DoF IMU Breakout – ICM-20948

SparkFun 9DoF IMU Breakout – ICM-20948 (Qwiic)
SparkFun 9DoF IMU (ICM-20948) Breakout Hookup Guide
github.com/sparkfun/SparkFun_Qwiic_9DoF_IMU_Breakout, The ICM20948 is the next IMU in the lineup from Invensense, following the MPU-9250
github.com/sparkfun/Qwiic_9DoF_IMU_ICM20948_Py, Python module for the SparkFun 9DoF IMU Breakout – ICM-20948 (Qwiic)

OpenLog Artemis

SparkFun OpenLog Artemis
SparkFun OpenLog Artemis (without IMU)

Others


MPU-9250

YouTube

MPU9250 module with Arduino Tutorials -Accelerometer, gyroscope and Magnetometer sensor
IMU MPU-9250 + Arduino + AHRS (Madgwick’s algorithm)
MPU9250 Test
3D Orientation-Rotation Tracking using MPU9250
MPU9250 initialization and gyro zero drift

Tutorials

MPU-9250 and Arduino (9-Axis IMU), with Source Code for Arduino + Client!!
Open source IMU and AHRS algorithms, Madgwick algorithm, sensor fusion algorithm, 2012


MPU-6050

YouTube

LabNote: MPU6050 Based IMU Arm Motion Capture + Blender Realtime Sync

GitHub

https://github.com/T-K-233/Dual-MPU6050-Motion-Sync


IMU

  • Inertial Measurement Unit [IMU]
  • inertial reference unit [IRU]
  • motion reference unit [MRU]
  • motion sensing

measurement of motion

  • acceleration
  • rotation
  • velocity

is essential to understanding the orientation of an object

  • production line machines
  • robotic devices
  • vehicles
  • autonomous systems (autonomen Systemen,)
  • gimbals (kardanischen Aufhängungen)
  • machine tools (Werkzeugmaschinen)
  • robotic prosthetics (Roboterprothesen)

Modules

  • Bosch BMI270 (SpeedyBee F405 V3)
  • TDK InvenSense MPU-6000
  • TDK InvenSense MPU-6050
  • TDK InvenSense MPU-9250 (SparkFun 9DoF Razor IMU M0)
  • TDK InvenSense ICM-20689
  • TDK InvenSense ICM-20602
  • TDK InvenSense ICM-20948


Python

conda create --name QuatAnimation python=3.12
conda activate QuatAnimation
# conda cannot use pyside6-addons and pyside6-essentials!!
# conda install -c conda-forge numpy pyside6 pyqtgraph pyopengl
pip install pyside6 matplotlib numpy pyqtgraph pyopengl


Tutorials

PyQt6 vs PySide6
Plotting with PyQtGraph, Create custom plots in PySide6 with PyQtGraph

Stackoverflow

Pyqtgraph GLMeshItem set rotation with quaternion
ImportError: No module named OpenGL.GL
opengl glLineWidth() doesn’t change size of lines

Wikipedia

Quaternions and spatial rotation


ELRS

Glossary

CRSF: TBS Crossfire, more specifically in our case most often referring to the communication protocol between

  • TX and TX module and
  • RX and FC respectively

Supported receiver protocols: CRSF, SBUS, SUMD, HoTT Telemetry, MAVLink, and PWM
ExpressLRS is written in C++ using the Arduino framework.

ExpressLRS

Glossary
Toolchain Setup
DIY Transmitter

PlatformIO

VScode ESP32 Build error Could not find one of “library.json, library.properties…” manifest files in package

YouTube

SimpleTX introducion
Arduino Based Simple Transmitter for ELRS TX Module
CLOSED – ExpressLRS DIY Transmitter Module Giveaway
ELRS / CRSF HID Joystick with Pi Pico
ExpressLRS Configurator Diy Firmware
ExpressLRS 2 4Ghz Transmitter Module Build and Flash

GitHub

github.com/ExpressLRS/ExpressLRS/, ESP32/ESP8285-based High-Performance Radio Link for RC applications
github.com/kkbin505/Arduino-Transmitter-for-ELRS/tree/SimpleTX_ELRS_3.X_Test, Arduino based RC transmitter for ELRS external TX Module
github.com/dbloemhard/Arduino-Transmitter-for-ELRS3.x, Arduino based RC transmitter for ELRS external TX Module
github.com/cruwaller/elrs_handset/, Custom DIY dual band (900/2400MHz) transmitter (handset) based on ExpressLRS.
github.com/cruwaller/ExpressLRS, ESP32/ESP8285 based LoRa Radio Link
github.com/mikeneiderhauser/CRSFJoystick, Arduino code that runs on a Pi Pico (2040) to emulate a USB HID Joystick
github.com/Sam4uk/CRSF

Tutorials

DIY RC radio link: the problem of protocols, Paweł Spychalski, Nov 2, 2017
FPV Protocols Explained (CRSF, SBUS, DSHOT, ACCST, PPM, PWM and more), 1st April 2021

CRSF Protocol

github.com/crsf-wg/crsf/wiki, CRSF Protocol Specifications
github.com/ExpressLRS/ExpressLRS/blob/master/src/lib/CrsfProtocol/crsf_protocol.h
github.com/britannio/pico_crsf/blob/main/crsf.h
github.com/CapnBry/CRServoF/tree/main/lib/CrsfSerial

DIY ESP32 E28

RandomNerdTutorials.com: ESP32 Pinout Reference: Which GPIO pins should you use?
LastMinuteEngineers.com: ESP32-WROOM-32 Pinout Reference

RP2040

GitHub

github.com/earlephilhower/arduino-pico, Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards

Documentation

Raspberry Pi Pico-series Microcontrollers
Arduino Pico: Serial Ports (USB and UART)

Glossary

Serial is the USB serial port
Serial1 is UART0, and Serial2 is UART1

Product

Waveshare RP2040-Zero
AliExpress: TZT RP2040-Zero

Drone 3.5inch – FlyFishRC Volador VX3.5

How to build a sub 250g 3.5-inch freestyle FPV Drone for $160 in 2024, Hoarder Sam

  • 16.8V = 4S
  • 25.2V = 6S
  • FlyFishRC Volador VX3 VX3.5
  • JHEMCU ExpressLRS RX24T
  • Caddx Ratel 2
  • SpeedyBee TX800 VTX
  • T-MOTOR P1604 KV2850 6S
  • HQ 3.5×2.5×3 Tri-blade Prop
  • SpeedyBee F405 Mini

FlyFishRC Volador VX3 VX3.5 O3 FPV Frame 3inch 3.5inch Compatible with DJI O3 Air Unit For FPV RC Freestyle Quadcopter Kit
JHEMCU ExpressLRS RX24T 2.4G ELRS Radio Nano Long Range Receiver T-type Antenna 11X18mm for RC FPV Racing Freestyle Drone
Caddx Ratel 2 V2 FPV Camera Ratel2 2.1mm Lens 16:9/4:3 NTSC/PAL Switchable With Replacement Lens Micro FPV Camera Drone
SpeedyBee TX800 VTX 5.8G 48CH PitMode 25mW/200mW/400mW/800mW Output Long Range Transmitter Tramp Support For RC FPV Racing Drone
4PCS T-MOTOR P1604 KV2850 6S/KV3800 4S Brushless Motor 1.5mm Shaft 9*9mm Holes For RC FPV Freestyle 3.5inch Sub 250g Drone
2pairs HQ 3.5×2.5×3 Tri-blade Prop HQPROP 3525 3.5inch FPV Propeller
SpeedyBee F405 Mini Flight Controller with BLS 35A Mini V2 20×20 4-in-1 ESC for RC FPV Racing Drone

Speedybee Mini

Eachine Q90C Flyingfrog – Brushed Flight Control

Open Source Motion Capture for Autonomous Drones
github.com/jyjblrd/Low-Cost-Mocap
Open Source Motion Capture for Autonomous Drones, $20 system for room-scale millimeter level precision motion capture

Build a low-cost motion capture system

Crazyflie 2.1, $225.00
Crazyflie 2.1+, $240.00
ESPcopter, $149.00

AliExpress

F3 EVO Brush Flight Controller, Original
HappyModel SP Racing F3 EVO Brushed Micro FC, Original

F3 EVO Micro Brushed Flight Control Board
Tiny 32bits 2S F3 Brushed Flight Control Board, Based On SP RACING F3 EVO
SP RACING F3 EVO Clone


Eachine Q90C

Hardware

  • XN297 Low Power 2.4GHz GFSK Transceiver (NRF24L01)

Eachine drones roadmap

YouTube

How to use your Eachine Flying Frog Q90C radio with an FPV Simulator like FPV Freerider &Velocidrone

Manual

Eachine Q90C FlyingFrog FPV Racing Quadcopter Manual

Blog

github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details.md, ## Q90C – *72*
github.com/goebish/XN297_dumper

Forum

MoonTop M9911 with PANCHIP XN297
EAchine / Gin H7