One bright interface for pocket-sized MeshCore radios.
One release catalog for the NeonPocketMC firmware family. This repository pins the exact released source for every supported RadioCore build and links to each product-owned download.
Choose by exact hardware and role. There is no universal image. Never cross-flash D1L, RC52, RCC6, Heltec V3, or Heltec V4 firmware. Attach a suitable LoRa antenna before transmitting.
Open flasher.canadaverse.org in Chrome or Edge to choose exact hardware, transport, role, screen, WebUI, observer, repeater, or Room Server features. It detects the connected device family, verifies every release checksum, flashes without a whole-chip erase, checks the reboot, and guides supported server onboarding before USB is disconnected.
The Pi-hosted interface proxies immutable binaries from their owning GitHub releases; it does not keep a second firmware archive. Native-USB companion images use the standard binary MeshCore companion protocol and are separate from BLE or Wi-Fi images.
The TFT builds open with a 3.2-second procedural NeonPocketMC sequence: vector-pocket reveal, mesh nodes, chromatic title glitch, star field, raster beam, specular sweep, staged link status, and a final MESH READY lockup. This GIF contains 27 checksum-verified frames captured directly from the RCC6 framebuffer—not a mockup. RC52 companions and TFT Room Servers use the same visual language with role-specific status text.
Capture provenance and checksums are recorded in docs/images/demoscene/README.md.
Ultimate keeps the radio useful without a phone: unread-first Home, complete paged messages, recent-node context, live radio health, device tools, and the one-button composer. These are direct 220×128 framebuffer captures from the connected RCC6 production renderer—not browser mockups.
![]() Home |
![]() Inbox |
![]() Network Explorer |
![]() Radio analytics |
![]() Tools |
![]() Power |
![]() Target picker |
![]() Quick composer |
Capture provenance is recorded in docs/images/rcc6-ultimate/README.md.
These are direct, pixel-for-pixel captures of the 220×128 framebuffer running on an RCC6—not mockups. They were captured from a temporary diagnostics build based on the exact v1.2.0-rc.1 source; the capture hook is not included in public firmware.
![]() Home |
![]() Nearby |
![]() Radio statistics |
![]() Mesh advert |
![]() One-button Quick Reply |
![]() Diagnostics |
![]() Power confirmation |
|
Capture provenance and checksums are recorded in docs/images/rcc6-ui/README.md.
The Ultimate Observer and full Room Server share a responsive local dashboard for field status, radio health, MQTT visibility, and recently heard mesh activity. These are real browser captures from the released RCC6 server firmware, not design mockups.
![]() Live overview |
![]() Radio metrics |
![]() MQTT status |
![]() Recently heard mesh |
Capture provenance and checksums are recorded in docs/images/rcc6-server/README.md.
These frames were captured from the OLED framebuffer running on the physical Heltec V3 qualification unit. The Heltec V4 uses the same compact NeonPocket interaction model with its own board and radio-power implementation.
![]() Home |
![]() Bluetooth |
![]() Advert |
![]() Power |
![]() Home |
![]() Nearby |
![]() Radio |
![]() Bluetooth |
![]() Advert |
![]() Power |
Capture provenance and checksums are recorded with each device gallery under docs/images.
NeonPocketMC ULP Solar Repeaters are experimental MeshCore 1.17.1 builds for Heltec V3/V4, RAK4631, RAK3401 1 W, Xiao ESP32-S3, Xiao nRF52840, RCC6, and RC52. RCC6 and RC52 each have separate headless and 220×128 TFT images.
Power saving is ON by default on new installs. The recommended balanced profile combines MCU sleep with SX1262 receive duty cycling; the simple USB configurator handles name, radio preset, transmit power, admin password, and the ULP level before deployment. This work is based on and fully attributes IoTThinks' EasySkyMesh power-saving implementation.
RX duty cycling trades receive availability for energy savings and can miss packets. Solar deployments still require a protected battery and an external MPPT/charge controller matched to the panel and cell—never connect a raw panel directly to VBAT or USB.
Each product release is pinned to an exact source commit and artifact checksum in catalog.json. Board-specific bootloaders, partitions, displays, and radio power paths remain separate.
| Hardware | Role | Current release | Normal install |
|---|---|---|---|
| Heltec WiFi LoRa 32 V3 + OLED | BLE, native-USB, Ultimate Web companion, or Ultimate Repeater WebUI | v2.0.0-rc.1 | Flash the selected app .bin at 0x10000 |
| Heltec WiFi LoRa 32 V4 + OLED | BLE, native-USB, Ultimate Web companion, or Ultimate Repeater WebUI | v2.0.0-rc.1 | Flash the selected app .bin at 0x10000 |
| RC52-L62 + NV3001B TFT | BLE or native-USB companion with NeonPocket UI | v1.1.0-rc.4 | Copy the selected .uf2 to the RC52 bootloader drive |
| RC52-L62 without TFT | Screenless BLE companion; pairing PIN 123456 |
v1.0.0-rc.1 | Copy the BLE .uf2 to the RC52 bootloader drive |
| RC52-L62 | Headless low-power repeater | v1.1.0-rc.2 | Copy the repeater .uf2 to the RC52 bootloader drive |
| RC52-L62 | Headless Room Server | v1.1.0-rc.2 | Copy the headless Room Server .uf2 |
| RC52-L62 + NV3001B TFT | Room Server with local dashboard | v1.1.0-rc.2 | Copy the TFT Room Server .uf2 |
| RCC6 + NV3001B TFT | Ultimate BLE, native-USB, or Wi-Fi Web companion | v2.3.0-rc.5 | Flash the selected app .bin at 0x10000 |
| RCC6 without TFT | Screenless BLE, native-USB, or Wi-Fi Web/TCP companion | v1.0.0-rc.3 | Flash the selected app .bin at 0x10000 |
| RCC6 | Ultimate MQTT observer/repeater with setup WebUI | v1.3.0-rc.3 | Flash the observer app at 0x10000, then run the configurator |
| RCC6, TFT optional | Ultimate minimal or full Room Server | v1.3.0-rc.3 | Pick minimal/full and headless/TFT, then flash its app at 0x10000 |
| V3, V4, RAK4631, RAK3401 1 W, Xiao ESP32-S3/nRF52840, RCC6, RC52 | Experimental ULP Solar Repeater; RCC6/RC52 headless or TFT | v1.0.0-rc.2 | Pick the exact board image; use app-only .bin at 0x10000 or matching nRF52 .uf2 |
| SenseCAP Indicator D1L | DeskOS touch companion with repeater and room management | v1.7.9 | Existing DeskOS: app at 0x20000; fresh install: full 8 MB image at 0x0 |
The RCC6 Web companion and networked service builds now use human-first dashboards with traffic bars, delivery and signal analytics, nearby-radio freshness, and coordinate-backed maps that never invent node locations. The MQTT observer/repeater defaults to 3-byte packet hash mode. Its Windows/Linux configurator covers node name, radio preset and custom radio values, Wi-Fi, MQTT broker selection, and post-setup IP discovery. The preferred public brokers are mqtt1.meshcore.ca and mqtt2.meshcore.ca; the other upstream-compatible brokers remain selectable/configurable.
Use the newest NeonPocketMC suite release as the index. It carries the machine-readable catalog and checksum for the catalog; the product repositories above remain the single owners of their firmware binaries and setup packages.
Exact install filenames, sizes, SHA-256 values, release links, and source commits for every installable file are recorded in catalog.json.
The ten firmware histories intentionally remain separate because they target different chips, bootloaders, transports, displays, and deployment roles. This repository indexes them as pinned Git submodules:
firmware/
heltec-v3-companion/
heltec-v4-companion/
rc52-companion/
rc52-headless-companion/
rc52-repeater/
rcc6-companion/
rcc6-headless-companion/
rcc6-mqtt-repeater/
ulp-solar-repeaters/
deskos-meshcore/
Clone the exact suite source with:
git clone --recurse-submodules https://github.com/n30nex/NeonPocketMC.gitIf already cloned:
git submodule update --init --recursive- RC52: use the UF2 bootloader path for normal installs. Do not replace the SoftDevice or bootloader. The dedicated screenless BLE build uses fixed pairing PIN
123456. - Heltec V3/V4: use the matching app image at
0x10000for normal updates. Do not erase the whole flash; full-chip backups can contain private MeshCore identity material. - RCC6: use the app image at
0x10000for normal updates. Use a merged recovery image at0x0only when bootloader/partition recovery is required. Do not erase the whole flash. - SenseCAP Indicator D1L: use the DeskOS update image at
0x20000on an existing install. The full 8 MB image at0x0is destructive and only for a fresh or unrecoverable device. The RP2040 SD bridge uses a separate UF2/BOOTSEL step; neither path formats the SD card. - RCC6 merged recovery images stop well before SPIFFS and preserve MeshCore identity, contacts, channels, and preferences; they reset NVS-backed BLE bonds and saved Wi-Fi.
- The RC52 and RCC6 boards do not contain an MPPT controller suitable for an unregulated solar panel. Outdoor solar installs need an external regulator/charger matched to the panel and protected 1-cell battery.
- ULP Solar Repeaters are community builds based on IoTThinks EasySkyMesh power-saving work; they are not official IoTThinks, Heltec, RAKwireless, Seeed Studio, or MeshCore firmware.
See FLASHING.md for practical install and recovery instructions.
Room Server profiles, animated companion startup, RCC6 Diagnostics, and one-button Quick Reply are now shipped as prerelease candidates. Remaining improvements are tracked in docs/STACK_ROADMAP.md.
scripts/verify_catalog.py confirms each Git submodule pin, release URL, digest, and catalog invariant. Product repositories retain their own exact-target build workflows and hardware-specific release evidence.
Root documentation and catalog code are MIT licensed. Each of the ten firmware submodules retains its own upstream and third-party licenses.
































