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

see IMU / MARG / MEMS sensors


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 by kkbin505
github.com/dbloemhard/Arduino-Transmitter-for-ELRS3.x, Arduino based RC transmitter for ELRS external TX Module, fork of Arduino-Transmitter-for-ELRS
github.com/danxdz/simpleTx_esp32/, ESP32 ELRS handset, based on kkbin505 work
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

Drone FlyRC KF102 / KF106 vs. LYZRC L600

YouTube

How to flight / fly SF102 KF102 Max drone?
KF102 MAX Drone Tutorial, Teeggi Drone
KF102 Drone 8K version, DJI mavic air clone, full review 1080p 1080p
Kf102 drone fixing bad motor
Este Dron Me Encanta!! KF102 De VOJA – Unboxing y Prueba!!
How to power on the KF106 MAX Drone
KF106 Max Ready to fly
KF106 MAX Gimbal Camera Test
KFPLAN KF106 MAX GPS FPV 3-Axis Gimbal RC Drone Quadcopter – Shop on Banggood
Best 4K Drone 2023 | FLYRC KF102 vs XINGYUCHUANQI V8 vs Orstarry Z908 Pro 4K Drone Comparison

Amazon

KF102 GPS Drone 4k Profesional 8K HD Camera 2 Axis Gimbal Photography Brushless Foldable Quadcopter RC Distance 1200M
FUQUANDIAN KF102. PRO Drone KF102PRO Quadcopter Ersatzteile obere Daunenkörperhülle Propellerklingen Ahornblatt-Zubehör Drohne FPV Hubschrauber Quacopter Teil
Teeggi KF102 MAX GPS Drohne mit Kamera 4K HD
Teeggi KF106 MAX Drohne mit Kamera 4K HD

RCDrone

KF102 Pro MAX Drone Zubehör Propellerblätter Maple Leaf KF102pro Quadcopter Ersatzteile
KF102 MAX Drone – With Profesional 4K HD Camera

DRONESSET

KF102 2-Axis Gimbal HD Camera
KF106 MAX 3-Axis Gimbal Drone 4K

Drohnen Vergleich

X-Verse KF102 MAX

AliExpress

KF102/KF102 Max Drone 8k Profesional, KF102MAX-8K = CHF116.69
KF106 RC VS KF102 Max Drone 4k Professional, KF106 1B = CHF174.02, KF106 MAX 3B = CHF245.69
KF106 / KF106 MAX GPS Drone 4K Profesional, KF106 1B FB = CHF97.19, KF106 MAX 3B CB 32GB = CHF147.39
For KF102 7.4V 2200mAh, CHF15.59, 2 month delivery
JHD Drone Battery For KF102 MAX 7.4V 2200mAh, CHF17.49, 2 month delivery
KF102 Drone Original Spare Part


LYZRC L600

YouTube

Unboxing new drone L600 Pro
Drone da linha L voando no vento, qual melhor ? L500 L900 L200 L600 L800 LYZ RC

Alibaba

LYZ RC Drohne L600 PRO 4K

AliExpress

2024 New L600 PRO MAX GPS, L600-PRO-MAX-OAS = CHF92.69


Comparison

L600 PRO MAX
Battery: 7.4V, 4500mAh
Flight Time: 28 min

YouTube

Comparativo do KF 102 VS L900 – Principais diferenças e valores! NÃO COMPRE O L900