Skip to content

Add Heltec WiFi LoRa 32 V4-R8 Expansion Kit V2 support - #3057

Open
valleytechsolutions wants to merge 1 commit into
BruceDevices:mainfrom
valleytechsolutions:codex/heltec-v4-expansion-v2
Open

valleytechsolutions wants to merge 1 commit into
BruceDevices:mainfrom
valleytechsolutions:codex/heltec-v4-expansion-v2

Conversation

@valleytechsolutions

@valleytechsolutions valleytechsolutions commented Nov 7, 2026 •

Copy link
Copy Markdown

Proposed Changes

Add heltec-v4-expansion-v2 for the high-band Heltec WiFi LoRa 32 V4-R8 with Expansion Kit V2, 16 MB flash and 8 MB OPI PSRAM. Support its display/touch, buttons, SD, GNSS, SX1262, buzzer and battery-voltage input.

  • Share TFT/SD SPI, reserve the second controller for LoRa, and start touch after the shared reset. Queue input sampled each task tick.
  • Preserve built-in wiring across configuration imports/saves and reject conflicting optional pins. Reject absent RF/NRF hardware before SPI fallback or invalid GPIO/RMT initialization.
  • Configure SX1262's 1.8 V TCXO and external front-end switching; validate occupied bandwidth within 863–928 MHz. Cap raw chip drive at 0 dBm pending amplifier measurements, not as a calibrated antenna-output claim.
  • Add software sleep with USER/G0 wake and held-button refusal. Cooperatively park input outside Wire transactions before shutting down touch.
  • Register CI builds and produce explicit factory/Launcher installation images, checksums and metadata from one application build.

Supporting fixes: pin FastLED to 3.10.3 because 3.10.9 conflicts with board FP macros and fails USB-console LTO linking; correct USBSerial::vprintf() forwarding; stop printing credential configuration to Serial; hash complete binary files with bounded MD5 streaming. Heltec excludes FastLED because it has no RGB hardware.

Types of Changes

New board support, integration fixes, packaging and regression coverage.

Verification

Build: pio run -e heltec-v4-expansion-v2. See the board documentation for hardware, controls and recovery.

Flash ...-FACTORY-0x0.bin at zero for standalone use. Install ...-LAUNCHER-INSTALL.bin through Launcher to preserve its boot environment. These identical merged images let Launcher provision Bruce's required LittleFS. Back up an existing shared filesystem: Bruce may format it if mounting fails. Packaging checks image identity, partition MD5, application fit and exact application bytes.

Testing

  • Heltec HW3 and final Cardputer regression builds passed. Heltec application: 3,769,376 bytes; merged image: 3,834,912 bytes, SHA-256 fe806b4767a5487da44219e1d0be6488c724fbdc5f8e5beb91cef99dde4c0041.
  • Host checks passed: 15 input and seven streaming-hash cases, exhaustive rotation coordinates, band limits, production pin configuration with/without the Heltec guard, 14 packaging tests, and production serial-adapter formatting/output switching.
  • Owner-confirmed on earlier HW1/HW2 candidates: landscape display/touch; USER select/hold-back and KEY navigation; buzzer without backlight interference; keyboard Backspace/save; LoRa Chat initialization; fresh GNSS fix, Wi-Fi/BLE scan results, battery operation and sleep/wake. UI stayed responsive during a 3.8 MB SD transfer.
  • HW3 booted standalone and through the restored Launcher dev SD installer. SD size/MD5 matched the package; flash digests matched the final app and both unchanged original Launcher/LORA Tunnel app slots. Launcher allocated Bruce at 0x450000 and a working 448 KiB LittleFS partition.
  • On HW3 the owner confirmed saved LoRa-name retention through deep sleep/USER wake, return to Launcher with both applications listed, and another successful Bruce boot.

Peer LoRa RX/TX, RF range/output power and USB HID remain unverified. No second compatible radio is available.

Linked Issues

Preview binaries and checksums.

Related: bmorcelli/Launcher#471. Installer source reviewed at 2f43aa7bd3ef03e770c0a97135cbcfcc79c15aba; physical acceptance is separate.

User-Facing Change

Add Heltec V4-R8 high-band Expansion Kit V2 support and factory/Launcher installation images. Fix serial formatting and binary-file MD5; stop logging saved credentials.

Further Comments

Bare V4, Expansion V1 and low-band variants are outside this target. Battery percentage is a voltage estimate; software sleep does not disconnect the battery or GNSS backup supply. Hardware provenance is recorded in the board's NOTICE.md.

Integrate touch, buttons, SD, GNSS, SX1262 front end, battery and sleep. Protect fixed wiring, package factory and Launcher images, and add host regression coverage. Fix serial formatting, binary file hashing and credential logging encountered during hardware validation.
@valleytechsolutions
valleytechsolutions marked this pull request as ready for review November 7, 2026 16:31

This branch has not been deployed

No deployments
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.

1 participant