Skip to content

Releases: n30nex/NeonPocketMC-RCC6

NeonPocket Ultimate Companion RCC6 v2.2.0 RC1

Choose a tag to compare

@n30nex n30nex released this 12 Aug 08:44
ef5a16d

NeonPocket Ultimate Companion RCC6 v2.2.0 RC1

Ultimate 2.2 is an experimental RCC6-L62/SX1262 + 220×128 NV3001B prerelease. It keeps every earlier release available and must not be flashed to RC32, RC52, or another RadioCore layout.

Choose exactly one image

  • BLE: NeonPocketMC-RCC6-Ultimate-v2.2.0-rc.1-BLE-app.bin
  • Web: NeonPocketMC-RCC6-Ultimate-v2.2.0-rc.1-Web-app.bin
  • signed Web OTA: NeonPocketMC-RCC6-Ultimate-Web-v2.2.0-rc.1.npu

Normal USB flashing writes the app-only binary at 0x10000. Use a separately named merged recovery image at 0x0 only for bootloader/partition recovery. Neither path reaches SPIFFS; do not erase the whole chip.

What 2.2 adds

  • A rebuilt Web experience with five plain-language areas: Dashboard, Messages, Map, Radio, and Device.
  • Grouped 24-hour and seven-day RX/TX/failure bar charts, alongside the existing live signal and two-hour telemetry.
  • A local mesh map that plots only contacts carrying valid advertised coordinates. Contacts without location remain visible in the list and are never assigned a guessed position.
  • At-a-glance delivery, message-history, packet, memory, storage, battery, display-transfer, and queue health.
  • Cleaner human-facing labels throughout; diagnostic implementation terms stay in the detailed Device view.
  • A persisted battery-size setting in the authenticated WebUI and USB CLI Rescue. For a 420 mAh pack, enter set.batterysize 420 or np battery size 420; enter 0 to clear it.

RCC6 does not expose raw charger VBUS to firmware, but ESP32-C6 can detect an enumerated live USB host. A live-host disconnect clears charger-biased samples and starts a clean discharge-learning window; wall chargers and power banks fall back to at least ten minutes of sustained falling-voltage samples. Battery size is descriptive metadata; ADC calibration remains the separate multimeter-derived np battery offset <mV> setting.

The firmware source uses official MeshCore 1.17.0 plus the relevant post-release SX126x boosted-RX-gain persistence fix. There is no official upstream MeshCore 1.17.1 tag at the time of this release.

TCP/5000 remains always enabled in Web mode and carries the unrestricted MeshCore companion/admin protocol. Any trusted-LAN client can use it; HTTP authentication does not protect it.

Release proof

  • exact source/tag: ef5a16d2fa1987934ae2752ffd64bd3a437c5366
  • exact-main GitHub Actions: run 31579070019
  • upstream tests, deterministic WebUI verification, stable BLE/Web regressions, Ultimate BLE/Web builds, budgets, markers, manifests, and signed NPU checks all passed
  • exact Web app SHA-256 96931e7d3bd54562f829ec9d4738642bdfcd17c712c3a2792cbee5bc45d1efcf was app-only flashed and flash-verified on the connected RCC6
  • the device re-enumerated with its preserved USB identity, booted the authenticated dashboard at its saved LAN address, and exposed TCP/5000

The on-device gallery in the repository was captured from the connected RCC6 framebuffer; it is device-rendered output, not a browser mockup.

NeonPocket Ultimate Companion RCC6 v2.1.0 RC1

Choose a tag to compare

@n30nex n30nex released this 12 Aug 00:34
587bccc

NeonPocket Ultimate Companion RCC6 v2.1.0 RC1

Caution

Experimental RCC6-L62/SX1262 + 220×128 NV3001B firmware only. Do not flash RC32, RC52, or another RadioCore layout. The proven v1.2.0 RC2 and first Ultimate v2.0.0 RC1 remain available.

Ultimate ships as two separate application images. BLE and Wi-Fi never run together:

  • NeonPocketMC-RCC6-Ultimate-v2.1.0-rc.1-BLE-app.bin
  • NeonPocketMC-RCC6-Ultimate-v2.1.0-rc.1-Web-app.bin

What changed in 2.1

  • Exact TFT message-delivery states: Queued, On Air, Transmitted, ACKed with round-trip time, No ACK, Unconfirmed, and Failed.
  • A persistent composer with pinned recent targets, crash-safe drafts, editable quick phrases, template fields, and the one-switch keyboard.
  • Adaptive 66/100/125/150 ms rendering plus Balanced, Field, and Battery power profiles.
  • Calibratable battery voltage, trend, and estimated runtime telemetry.
  • Refreshed device-rendered Home, Inbox, Network, Radio, Tools, Power, target-picker, and quick-phrase captures.
  • Correct MeshCore path decoding: 0x80 is three-byte hash mode with zero hops, so the UI now shows 0 hops instead of the encoded value 128.

The Web image retains the Ultimate dashboard, charts, explicit browser-location transfer, authenticated history/settings/status APIs, and signed app-only .npu OTA.

Warning

TCP port 5000 is always enabled in Web mode. Any client on the trusted local network can access the full MeshCore companion/admin protocol. HTTP authentication does not protect raw TCP. Use Web mode only on a trusted private LAN.

On-device gallery

Every frame below was CRC checked while exported from the connected RCC6 framebuffer. These are device-rendered screens, not browser mockups.

Home Inbox
Ultimate Home Ultimate Inbox
Network Explorer Radio
Ultimate Network Explorer Ultimate Radio
Tools Power
Ultimate Tools Ultimate Power
Composer targets Quick phrases
Ultimate composer targets Ultimate quick phrases

Install and recovery

Normal USB installation is application-only at 0x10000 and preserves the bootloader, partition table, NVS, and SPIFFS identity/settings:

python -m esptool --chip esp32c6 --port COM21 write-flash 0x10000 NeonPocketMC-RCC6-Ultimate-v2.1.0-rc.1-BLE-app.bin

Replace the port and filename for Web mode. Use a separately named recovery-preserves-settings.bin image at 0x0 only for bootloader/partition recovery. Never erase the whole chip. Verify SHA256SUMS.txt before flashing.

Web OTA accepts only NeonPocketMC-RCC6-Ultimate-Web-v2.1.0-rc.1.npu. The existing bootloader does not guarantee automatic rollback from a boot-breaking app, so retain USB access and the matching recovery image.

Release proof

  • exact source/tag: 587bccc291734a28829bb64b9b439c66e849898c
  • MeshCore 1.17.1 base
  • exact-main GitHub Actions: run 31550265198
  • upstream tests, deterministic WebUI, stable BLE/Web regressions, Ultimate BLE/Web builds, image budgets, target markers, manifests, and signed NPU verification passed
  • exact Web app SHA-256 278c2786ee3b36648d55a888e992614df9b4811129035c3ad16a7a59373a81e0 was app-only flashed and flash-verified on the connected RCC6
  • saved NVS, OTA metadata, and SPIFFS were restored and verified after framebuffer capture; the exact release Web image then booted and exposed authenticated HTTP plus TCP/5000

See the full Ultimate 2.1 guide for history, composer, battery profiles, APIs, USB CLI Rescue, location, OTA, and recovery details.

NeonPocket Ultimate Companion RCC6 v2.0.0 RC1

Choose a tag to compare

@n30nex n30nex released this 11 Aug 01:54
d1a46ee

NeonPocket Ultimate Companion RCC6 v2.0.0 RC1

Caution

Experimental RCC6-L62/SX1262 + 220×128 NV3001B firmware only. Do not flash RC32, RC52, or another RadioCore layout. Keep the proven v1.2.0 RC2 release available for rollback.

Ultimate v2 ships as two separate application images. BLE and Wi-Fi never run together:

  • NeonPocketMC-RCC6-Ultimate-v2.0.0-rc.1-BLE-app.bin
  • NeonPocketMC-RCC6-Ultimate-v2.0.0-rc.1-Web-app.bin

The native TFT experience now includes Home, threaded Inbox, Network Explorer, Radio/Diagnostics, composer and history Tools, and deliberate two-hold Power control. It uses a 28,160-byte indexed framebuffer, 20×8 changed-tile transfers, eased 15 FPS motion, persistent /np/ history and seven-day metrics, a one-switch keyboard, and the full stage-driven NeonPocket demo-scene startup.

The Web image adds the Ultimate dashboard, explicit browser-location transfer, authenticated history/settings/status APIs, and signed app-only .npu OTA.

Warning

TCP port 5000 is always enabled in Web mode. Any client on the trusted local network can access the full MeshCore companion/admin protocol. HTTP authentication does not protect raw TCP. Use Web mode only on a trusted private LAN.

On-device gallery

Every frame below was CRC checked while exported from the connected RCC6 framebuffer. These are device-rendered screens, not browser mockups.

Home Inbox
Ultimate Home Ultimate Inbox
Network Explorer Radio
Ultimate Network Explorer Ultimate Radio
Tools Power
Ultimate Tools Ultimate Power

Install

Normal USB installation is application-only at 0x10000 and preserves the bootloader, partition table, NVS, and SPIFFS identity/settings:

python -m esptool --chip esp32c6 --port COM21 write-flash 0x10000 NeonPocketMC-RCC6-Ultimate-v2.0.0-rc.1-BLE-app.bin

Replace the port and filename for Web mode. Use a recovery-preserves-settings.bin image at 0x0 only for bootloader/partition recovery. Never erase the whole chip. Verify SHA256SUMS.txt before flashing.

Web OTA accepts only the signed NeonPocketMC-RCC6-Ultimate-Web-v2.0.0-rc.1.npu. USB recovery remains required for a boot-breaking update because the existing bootloader does not guarantee automatic rollback.

Candidate proof

  • exact source: d1a46ee5cd97398f36a2aa06437ad2b00b88eb87
  • MeshCore 1.17.1 base
  • exact-main GitHub Actions: upstream tests, deterministic WebUI, stable BLE/Web regressions, Ultimate BLE/Web builds, image/partition/marker budgets, signed NPU verification
  • connected RCC6: upright six-area render, CRC-checked frames, threaded Inbox/message paging, Network details/Back navigation, and app-only flash identity preservation

See the full Ultimate guide for history, APIs, USB CLI Rescue, location, OTA, recovery, and security details.

NeonPocketMC-RCC6 v1.2.0 RC2

Pre-release

Choose a tag to compare

@n30nex n30nex released this 10 Aug 21:54
bbf585e

NeonPocketMC-RCC6 1.2 RC2

Experimental BLE and Wi-Fi Web/AP MeshCore companion firmware for the Heltec RadioCore RCC6 with the attached 220×128 NV3001B TFT.

RX-gain hotfix

  • Backports the exact six-file fix from upstream MeshCore PR #3158 / commit 6f491f30332226a57291cce6c7c3864e931b374d.
  • Preserves the configured boosted-RX-gain setting after RadioLib radio resets instead of reverting to the compiled default.
  • Includes no unrelated MeshCore dev changes. Upstream has not published an official 1.17.1 tag; this is MeshCore 1.17.0 plus that exact fix.

Exact product source: bbf585e65afb1044d2ed91079f96d3b0e3325279. WebUI verification and both BLE and Web/AP firmware builds passed in exact-main Actions run 31434948735.

Choose either BLE or Web/AP. Flash a normal -app.bin at 0x10000; use the matching merged recovery image at 0x0 only for bootloader/partition recovery. Do not erase the whole flash. Recovery images stop before SPIFFS and preserve MeshCore identity, contacts, channels, and preferences.

This hotfix build is CI-qualified but was not re-flashed during this release pass. It remains a prerelease.

NeonPocketMC-RCC6 v1.2.0 RC1

Pre-release

Choose a tag to compare

@n30nex n30nex released this 09 Aug 20:58
502474d

NeonPocketMC-RCC6 1.2 RC1

Experimental MeshCore 1.17 companion firmware for the Heltec RadioCore RCC6 with the attached 220×128 NV3001B TFT.

New in this candidate

  • Animated NeonPocketMC startup.
  • Cached Diagnostics page.
  • Six-choice auto-scanning Quick Reply for the latest valid direct or channel target.
  • Canonical on-device and WebUI branding.

Choose either BLE or Web/AP. Flash normal application files at 0x10000; use a matching merged recovery file at 0x0 only for bootloader/partition recovery. Do not erase the whole flash. The merged files stop before SPIFFS and preserve MeshCore identity, contacts, channels, and preferences.

The exact BLE candidate was app-only flashed and read-back verified on the RCC6 qualification unit, booted with its 56,320-byte framebuffer, and passed the 16 KB memory gate. This remains a prerelease.

NeonPocketMC-RCC6 1.1 RC1

Pre-release

Choose a tag to compare

@n30nex n30nex released this 09 Aug 19:31

NeonPocketMC-RCC6 1.1 RC1

This prerelease moves the RCC6 NeonPocket companion firmware to MeshCore 1.17.0 at upstream commit 727fc0512ce08bfd7b499e46daa7fca6eeec730d.

It provides two separate RCC6 images:

  • BLE — secure MeshCore companion mode with the native 220×128 NeonPocket TFT interface.
  • Web/AP — the same TFT experience plus a WPA setup AP, local 2.4 GHz Wi-Fi setup, authenticated WebUI, and TCP/5000 for trusted private LANs.

Storage-startup fix

Earlier builds could show STORAGE ERROR after a fresh/full recovery because an erased SPIFFS partition is not yet a formatted filesystem. This version mounts without auto-formatting, formats only when the entire SPIFFS partition is confirmed erased (0xFF), and otherwise fails closed without destroying existing MeshCore data.

Normal app-only updates and the included merged recovery images preserve the SPIFFS partition containing identity, contacts, channels, and preferences.

Exact-candidate validation

  • Public source/tag: 3de6a8ff564fb07ce799c65250112fd8efeca476
  • GitHub Actions run 31331428438: embedded WebUI, BLE firmware, Web/AP firmware, DIO image/header checks, merged recovery images, and checksums passed.
  • Both exact app images were flashed at 0x10000 and read-back verified on RCC6 f0:f5:bd:0b:aa:e0; no erase was performed.
  • Web/AP booted once, allocated the 56,320-byte framebuffer, passed the 16 KB runtime memory gate, joined local Wi-Fi, returned the expected HTTP authentication challenge, and opened TCP/5000.
  • BLE booted cleanly, allocated the framebuffer, passed the memory gate, retained the stored node identity, and advertised the MeshCore UART service after reset.

Files

  • NeonPocketMC-RCC6-1.1-RC1-BLE-app.bin — recommended BLE update; flash at 0x10000.
  • NeonPocketMC-RCC6-1.1-RC1-WebAP-app.bin — recommended Web/AP update; flash at 0x10000.
  • *-full-recovery-preserves-meshcore-settings.bin — bootloader/partition recovery at 0x0; resets NVS/BLE bonds/saved Wi-Fi but does not reach SPIFFS at 0xC90000.
  • NeonPocketMC-RCC6-1.1-RC1-third-party-licenses.zip — license texts and dependency notices.
  • SHA256SUMS.txt — integrity manifest.

Attach the LoRa antenna before transmitting. Do not erase the whole flash. Raw TCP/5000 exposes the full companion/admin protocol; use station mode only on a trusted private LAN.

RCC6 only—do not flash RC32, RC52, or other RadioCore hardware.

RadioCore²-RCC6 1.0 RC2

Pre-release

Choose a tag to compare

@n30nex n30nex released this 09 Aug 05:26

RadioCore²-RCC6 1.0 RC2

RC2 replaces the withdrawn RC1 startup candidate. It provides two separate RCC6 firmware modes with the same Neon Pocket 220×128 TFT experience:

  • BLE — secure MeshCore companion mode with PIN pairing.
  • Web/AP — offline iPhone-dark WebUI, WPA setup AP, local 2.4 GHz Wi-Fi wizard, authenticated station HTTP, and raw TCP/5000 for trusted private LANs.

Physical validation

Firmware source candidate: 2fd6c8bfd1b6a2cf05a3f991eddfa8e188ae87bd (merged to main).

  • Both exact images app-only flashed and hash-verified on the ESP32-C6 RCC6.
  • Both cleanly booted with the 56,320-byte framebuffer and normal delta flush.
  • BLE companion connected, loaded the node, and sent a direct Public LoRa message received independently at 11.75 dB SNR.
  • Web/AP joined local Wi-Fi, served the authenticated WebUI, returned a valid TCP/5000 MeshCore DEVICE_INFO, and sent a direct Public LoRa message received independently at 12.0 dB SNR.
  • GitHub Actions unit tests, deterministic WebUI verification, BLE build, and Web/AP build passed.

Files

  • RadioCore2-RCC6-1.0-RC2-BLE-app.bin — recommended BLE app-only update at 0x10000; preserves NVS and MeshCore settings.
  • RadioCore2-RCC6-1.0-RC2-WebAP-app.bin — recommended Web/AP app-only update at 0x10000; preserves NVS and MeshCore settings.
  • *-full-recovery-preserves-meshcore-settings.bin — flash at 0x0; resets NVS, BLE bonds, and saved Wi-Fi while preserving MeshCore identity/settings in SPIFFS.
  • RadioCore2-RCC6-1.0-RC2-third-party-licenses.zip — license texts and dependency source pointers.
  • SHA256SUMS.txt — integrity manifest.

Attach the LoRa antenna before transmitting. Raw TCP/5000 exposes the full companion/admin protocol without application authentication; use Web station mode only on a trusted private LAN.

This is a prerelease. Exhaustive battery-runtime, low-voltage, notification-failure, and long-duration RF soak testing remains for final 1.0.