Add optional secondary serial device to ESP32 receivers (#2605)
commite401cbbddde96a50b4573a409191ac6b06dd0a01
authorMichael <mha1@users.noreply.github.com>
Sat, 1 Jun 2024 23:54:41 +0000 (2 01:54 +0200)
committerGitHub <noreply@github.com>
Sat, 1 Jun 2024 23:54:41 +0000 (2 09:54 +1000)
tree6351b82cf3fa4a7b9db15e8daa6b06325328874d
parent2cab1cb12718748a1ed7460c235e1b3171b12498
Add optional secondary serial device to ESP32 receivers (#2605)

* initial commit

* cleanup rebase

* first shot at LUA and WebUI user interface for selecting scondary serial pins and protocol

* fixes build checks

* cosmetics and added comment about DShot not working on GPIO0

* cleanup

* name changes for WebUI and LUA

* fixed my serial1-config html extension (one </div> too many)

* added Serial2 feature badge

* cleanup rebase

* cleanup

* restrict selection of Serial2 RX/TX to specific pins if Serial2 pins are defined in hardware.html

fixes feature selections not greyed out at initialization

* include fix #2623

* LUA: bind Serial2 RX/TX to pins if defined for target, else allow any pin

WebUI: show Serial2 mode selection only if Serial2 TX is assigned

* proper solution to showing/hiding Serial2 protocol selection.

* LUA script for assigning I2C and Serial2 modes:

- added logic to prevent multiple assignments of SCL/SDA and RX2/TX2

* - SBUS Serial2 init with 8E2 instead of 8N2

- SBUS driver object needs to know which serial stream it is running on to allow SBUS on one and DJI on the other serial device

* cleanup

* updated to @pkendall64's review comments

changes:
- _('is-airport').onchange to call serial and serial1 onchange()
- added serial1 protocol to SetDefaults()

* removed duplicate line of code

* updated Serial1IO driver to PR#2176 template (without teamrace as this is handled in SerialIO driver which is always on)

* initial commit

cleanup rebase

first shot at LUA and WebUI user interface for selecting scondary serial pins and protocol

fixes build checks

cosmetics and added comment about DShot not working on GPIO0

PWM testing/fixes (#2588)

* Revert "Fix for 10KHz 0% and 100% on 8285 receviers (#2496)"

This reverts commit 12659fb2b4dfb04154719f26e1b9ef2eef6a4b6c.

* Much simpler handling of 0 high/low times

* Optimisation of timing in PWM timer interrupt

t

* Extend minimum time for next NMI

* Rename pin/i to gpio as thats what it really is.

cleanup

name changes for WebUI and LUA

fixed my serial1-config html extension (one </div> too many)

added Serial2 feature badge

increase-SX1276-SyncPktIntervalDisconnected-for-25Hz (#2589)

Ignore trailing items with 0 duration (#2612)

This fixes spurious channel data for inverted PPM and glitches

cleanup rebase

fixes build checks

cleanup

name changes for WebUI and LUA

fixed my serial1-config html extension (one </div> too many)

added Serial2 feature badge

Fix "Not set" UID badge (#2619)

Allow choosing the SubGHz domain for LR1121 modules (#2618)

restrict selection of Serial2 RX/TX to specific pins if Serial2 pins are defined in hardware.html

fixes feature selections not greyed out at initialization

include fix #2623

LUA: bind Serial2 RX/TX to pins if defined for target, else allow any pin

WebUI: show Serial2 mode selection only if Serial2 TX is assigned

proper solution to showing/hiding Serial2 protocol selection.

WebUI: prevent multiple I2C SCL/SDA selections (#2624)

* fixes issue #2623

* do it properly

fix antenna value for Diversity/Gemini receivers (#2622)

Fix LR1121 binding (#2617)

* fix LR1121 binding

* remove magic

LUA script for assigning I2C and Serial2 modes:

- added logic to prevent multiple assignments of SCL/SDA and RX2/TX2

add r flag to encode string as raw string to fix deprecation (#2598)

- SBUS Serial2 init with 8E2 instead of 8N2

- SBUS driver object needs to know which serial stream it is running on to allow SBUS on one and DJI on the other serial device

cleanup

updated to @pkendall64's review comments

changes:
- _('is-airport').onchange to call serial and serial1 onchange()
- added serial1 protocol to SetDefaults()

removed duplicate line of code

* adjusted to no-diode HoTT Telemetry implementation

* fix rebase deferExecution(100, []() -> deferExecutionMillis(100, []()

* updated Serial1IO driver to PR#2176 template (without teamrace as this is handled in SerialIO driver which is always on)

* fix rebase

* fix rebase

* don't feature Serial2 on PWM outputs already featured as dedicated Serial1

---------

Co-authored-by: Jye <14170229+JyeSmith@users.noreply.github.com>
18 files changed:
src/html/hardware.html
src/html/index.html
src/html/scan.js
src/include/common.h
src/include/hardware.h
src/include/target/Unified_ESP_RX.h
src/lib/CONFIG/config.cpp
src/lib/CONFIG/config.h
src/lib/LUA/rx_devLUA.cpp
src/lib/OPTIONS/hardware.cpp
src/lib/WIFI/devWIFI.cpp
src/src/rx-serial/SerialHoTT_TLM.cpp
src/src/rx-serial/SerialHoTT_TLM.h
src/src/rx-serial/SerialSBUS.cpp
src/src/rx-serial/SerialSBUS.h
src/src/rx-serial/devSerial1IO.cpp [new file with mode: 0644]
src/src/rx-serial/devSerial1IO.h [new file with mode: 0644]
src/src/rx_main.cpp