Skip to content

Added support for the second RF slot on the Station G3 - #49

Closed
SwadeDotExe wants to merge 1 commit into
agessaman:observer-firmware-devfrom
SwadeDotExe:observer-firmware-dev
Closed

SwadeDotExe wants to merge 1 commit into
agessaman:observer-firmware-devfrom
SwadeDotExe:observer-firmware-dev

Conversation

@SwadeDotExe

Copy link
Copy Markdown

Added a new variants/station_g3_esp32_rf2/platformio.ini configuration, which inherits the existing Station G3 environments and replaces only the RF2 slot-specific pin definitions. This avoids duplicating the Station G3 board implementation and allows future Station G3 firmware changes to continue applying to both RF slots.

@agessaman

Copy link
Copy Markdown
Owner

I had to tweak this a bit to fit it into the build process. It's in the observer-firmware-dev branch now.

@agessaman agessaman closed this Sep 6, 2026
Elektr0Vodka pushed a commit to Dutch-MeshCore/MeshCore that referenced this pull request Sep 11, 2026
The motherboard has two RF daughterboard slots on separate GPIOs, mirrored by
its "LNA P" / "LNA S" jumpers, but the variant only ever pinned slot 1.

The shared configuration moves into [Station_G3_ESP32_common], with the SPI and
LNA lines split into per-slot sections. [Station_G3_ESP32] (slot 1) and
[Station_G3_ESP32_r2] (slot 2) each compose common + their own pins, so neither
set of -D flags has to shadow the other on the compile line - appending an
override would work only by last-wins, and esp32_base's -w hides the resulting
redefinition warning. Every pre-existing env keeps its name and resolves to
byte-identical options; verified by diffing pio project config --json-output.

PA PL1 is one board-level jumper shared by both slots, so P_PA1_EN stays in the
common section along with the TX power calibration.

Adds r2 twins of the repeater, room server and both observer envs, each an exact
mirror of its slot-1 sibling apart from the base it extends.

Slot 2 pins come from on-hardware testing in agessaman#49 and are not
documented publicly; the vendor wiki serves no content to fetchers and Meshtastic
implements slot 1 only.

Known limitation, unchanged from that PR: GPIO 42 and 43 fall outside the
ESP32-S3 RTC GPIO range (0-21), so the rtc_gpio_hold_en() calls in
ESP32Board::enterDeepSleep() and StationG3Board::powerOff() return
ESP_ERR_INVALID_ARG on slot 2 and the NSS and LNA pins are not latched through
deep sleep. Fixing it means gpio_hold_en() plus gpio_deep_sleep_hold_en() in
shared code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants