Experimental MeshCore 1.17 BLE or native-USB companion firmware for the Heltec RadioCore RC52-L62 with its vendor 220 x 128 NV3001B TFT.
RC52 only—do not flash RCC6, RC32, or RC52 variants with different display/radio hardware.
Guided install: flasher.canadaverse.org
NeonPocketMC Home dashboard on the RC52 qualification unit.
The RC52 renders this 3.2-second sequence natively before the companion dashboard. The GIF is a direct, checksum-verified capture of the shared 220×128 renderer; capture provenance is maintained in the unified gallery.
The current experimental release is v1.1.0-rc.5. It normalizes unsupported live-GPS advert settings to saved coordinates. Use only files attached to that GitHub Release; short-lived Actions artifacts are development builds.
This release adds native USB and retains the animated startup and triple-press Home/clear shortcut. It is still a release candidate, not a final stable release.
The port began from MeshCore 1.17.0 at upstream commit 727fc0512ce08bfd7b499e46daa7fca6eeec730d and now includes the target-relevant 1.17.1 nRF52840 crypto and entropy maintenance fixes. The RCC6 project supplied the visual reference only; its ESP32 hardware, Web/AP transport, and release history are not included.
- Two targets:
heltec_rc52_companion_radio_bleandheltec_rc52_companion_radio_usb - Separate BLE and native-USB companion images
- Native 220 x 128 RGB565 NeonPocket dashboard and inbox
- Animated NeonPocketMC startup mark and progress sequence
- One hardware-SPI framebuffer with 8-row delta flushing
- Home, Inbox, Nearby, Radio, Bluetooth, Advert, and Power pages
- Local direct and
#channelunread tracking with a bounded32+cache - 60-second TFT timeout while BLE and LoRa continue running
- Warning below 3.45 V, cleared above 3.60 V; no automatic low-voltage shutdown
- Fail-closed display, memory, radio, and filesystem startup checks
Web/AP and alternate RC52 hardware variants are deliberately out of scope. For an RC52-L62 without the TFT, use the separate NeonPocketMC-RC52-Headless BLE image with default pairing PIN 123456. The USB build exposes the standard binary MeshCore companion protocol; it is not the text CLI.
| Function | Pins / behavior |
|---|---|
| TFT SPI1 | SCK 30, MOSI 34, CS 36, DC 28, reset 10 |
| TFT power | enable 45 active-low, backlight 9 active-high |
| SX1262 SPI | SCK 25, MISO 14, MOSI 22, CS 13 |
| SX1262 control | DIO1 11, BUSY 24, reset 32, RXEN 39 |
| Radio power | FEM 26, VFEM 16 |
| User button | 42, active-low |
| Battery ADC | control 4, ADC 31, provisional multiplier 4.9 |
The radio uses DIO2 RF switching, DIO3 at 1.8 V for the TCXO, DC-DC mode, and the RC52 radio-power startup sequence.
- Screen off: the first gesture wakes the TFT and is consumed.
- Single press: next tab, inbox item, or message page.
- Double press: the current page action, including opening Inbox, toggling BLE, or sending a flood-scoped Advert.
- Triple press: return to Home; from Inbox it also clears every local unread message.
- Long hold: show Power confirmation.
- Second long hold within eight seconds while confirmation is visible: enter nRF52 system-off after button release.
GitHub Actions is the supported build path. The RC52 Build workflow:
- checks out the exact branch commit rather than a synthetic pull-request merge;
- runs the upstream native unit tests;
- builds both RC52 companion targets;
- verifies the UF2 family and application start address;
- regression-builds
Heltec_t114_companion_radio_ble; and - publishes short-lived
.uf2,.hex, checksum, and UF2-info artifacts.
The artifact is application-only. It must be copied through the RC52 UF2 bootloader. Never erase or replace the bootloader or SoftDevice. See docs/FLASHING.md.
The exact release commit and build links are recorded on the 1.1 RC5 release page. GitHub Actions builds both RC52 images, validates their UF2 family and application address, runs upstream unit tests, and regression-builds an existing nRF52 companion target.
The underlying RC52 TFT, button, BLE, and LoRa port was physically accepted on the qualification unit. RC4 retains that BLE image and adds the exact-build native-USB image. Longer endurance testing and physical battery-ADC calibration remain deferred.
This is a derivative of MeshCore. Preserve the upstream license notices and third-party licenses when redistributing source or binaries. The repository’s top-level license is in license.txt.


