Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@
[submodule "firmware/rc52-headless-companion"]
path = firmware/rc52-headless-companion
url = https://github.com/n30nex/NeonPocketMC-RC52-Headless.git
[submodule "firmware/rcc6-headless-companion"]
path = firmware/rcc6-headless-companion
Comment on lines +25 to +26

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Initialize the new submodule in catalog CI

The catalog workflow in .github/workflows/verify.yml lines 17–20 still syncs and updates only the previous five RadioCore repositories, so this new submodule is never cloned in CI. Because verify_catalog.py merely compares the catalog commit with the staged gitlink via git ls-files, validation can pass even if this repository or pinned commit cannot actually be fetched; add this path to both the workflow's git submodule sync and git submodule update commands.

Useful? React with 👍 / 👎.

url = https://github.com/n30nex/NeonPocketMC-RCC6-Headless.git
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ Each product release is pinned to an exact source commit and artifact checksum i
| RC52-L62 | Headless Room Server | [v1.1.0-rc.2](https://github.com/n30nex/NeonPocketMC-RC52-Repeater/releases/tag/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](https://github.com/n30nex/NeonPocketMC-RC52-Repeater/releases/tag/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.3](https://github.com/n30nex/NeonPocketMC-RCC6/releases/tag/v2.3.0-rc.3) | Flash the selected app `.bin` at `0x10000` |
| RCC6 without TFT | Screenless BLE, native-USB, or Wi-Fi Web/TCP companion | [v1.0.0-rc.1](https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/tag/v1.0.0-rc.1) | Flash the selected app `.bin` at `0x10000` |
| RCC6 | Ultimate MQTT observer/repeater with setup WebUI | [v1.3.0-rc.1](https://github.com/n30nex/NeonPocketMC-RCC6-Repeater/releases/tag/v1.3.0-rc.1) | Flash the observer app at `0x10000`, then run the configurator |
| RCC6, TFT optional | Ultimate minimal or full Room Server | [v1.3.0-rc.1](https://github.com/n30nex/NeonPocketMC-RCC6-Repeater/releases/tag/v1.3.0-rc.1) | Pick minimal/full and headless/TFT, then flash its app at `0x10000` |
| SenseCAP Indicator D1L | DeskOS touch companion with repeater and room management | [v1.7.9](https://github.com/n30nex/DeskOS-MeshCore/releases/tag/v1.7.9) | Existing DeskOS: app at `0x20000`; fresh install: full 8 MB image at `0x0` |
Expand All @@ -162,7 +163,7 @@ Exact install filenames, sizes, SHA-256 values, release links, and source commit

## Source layout

The eight firmware histories intentionally remain separate because they target different chips, bootloaders, transports, displays, and deployment roles. This repository indexes them as pinned Git submodules:
The nine firmware histories intentionally remain separate because they target different chips, bootloaders, transports, displays, and deployment roles. This repository indexes them as pinned Git submodules:

```text
firmware/
Expand All @@ -172,6 +173,7 @@ firmware/
rc52-headless-companion/
rc52-repeater/
rcc6-companion/
rcc6-headless-companion/
rcc6-mqtt-repeater/
deskos-meshcore/
```
Expand Down Expand Up @@ -206,4 +208,4 @@ Room Server profiles, animated companion startup, RCC6 Diagnostics, and one-butt

[`scripts/verify_catalog.py`](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 eight firmware submodules retains its own upstream and third-party licenses.
Root documentation and catalog code are MIT licensed. Each of the nine firmware submodules retains its own upstream and third-party licenses.
21 changes: 20 additions & 1 deletion catalog.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema": 1,
"suite_version": "1.7.0-rc.1",
"suite_version": "1.8.0-rc.1",
"products": [
{
"id": "heltec-v3-companion",
Expand Down Expand Up @@ -108,6 +108,25 @@
{"name": "NeonPocketMC-RCC6-Ultimate-Web-v2.3.0-rc.3.npu", "size": 1486269, "sha256": "37d444530d52162d710e7fb0bd305d4a68d209233c566c71de3c511b1600cffc", "url": "https://github.com/n30nex/NeonPocketMC-RCC6/releases/download/v2.3.0-rc.3/NeonPocketMC-RCC6-Ultimate-Web-v2.3.0-rc.3.npu"}
]
},
{
"id": "rcc6-headless-companion",
"hardware": "Heltec RadioCore RCC6-L62 without TFT",
"role": "Screenless BLE, native-USB, or Wi-Fi Web/TCP companion",
"repository": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless",
"release": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/tag/v1.0.0-rc.1",
"tag": "v1.0.0-rc.1",
"commit": "4c91a5e25f24f483fa206acc4125404dfef3b9f3",
"submodule": "firmware/rcc6-headless-companion",
"profiles": ["ble-companion-headless", "usb-companion-headless", "web-ap-companion-headless"],
"artifacts": [
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-BLE-app.bin", "size": 1475632, "sha256": "94891209e1b9636793d640803f7fdad342d34dcf0c7efe4a621095eddefb9c45", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-BLE-app.bin"},
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-BLE-recovery-resets-nvs-preserves-meshcore-storage.bin", "size": 1541168, "sha256": "e147ca0b4fe9e45cad904477ce1f86c527d732f7347334bb5aadddac20e0f8d5", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-BLE-recovery-resets-nvs-preserves-meshcore-storage.bin"},
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-USB-app.bin", "size": 562624, "sha256": "69ab501a221f0765e5175d93eba2e3f9e938bf017ee618c4c3893225c19469ae", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-USB-app.bin"},
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-USB-recovery-resets-nvs-preserves-meshcore-storage.bin", "size": 628160, "sha256": "414dee406aed8e2cda881328145baa2da6d2e9b1f45b02b3928ca6cb72362396", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-USB-recovery-resets-nvs-preserves-meshcore-storage.bin"},
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-Web-app.bin", "size": 1377568, "sha256": "3cf0551afd948c310c79ba9b69b1e9e32eaf4a93ef4f296bf6252bc5ec811d58", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-Web-app.bin"},
{"name": "NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-Web-recovery-resets-nvs-preserves-meshcore-storage.bin", "size": 1443104, "sha256": "4806348e6fe00d88af584bd820f54655afe0f7c0d4905aff42c802c435adea9b", "url": "https://github.com/n30nex/NeonPocketMC-RCC6-Headless/releases/download/v1.0.0-rc.1/NeonPocketMC-RCC6-Headless-v1.0.0-rc.1-Web-recovery-resets-nvs-preserves-meshcore-storage.bin"}
]
},
{
"id": "rcc6-server",
"hardware": "Heltec RadioCore RCC6",
Expand Down
22 changes: 22 additions & 0 deletions docs/releases/1.8-RC1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# NeonPocketMC suite v1.8.0 RC1

Suite 1.8 RC1 adds the dedicated screenless RCC6 companion family without duplicating product-owned firmware binaries.

## RCC6 headless companion

- Hardware: Heltec RadioCore RCC6-L62/SX1262 without the NV3001B TFT.
- Transports: standard MeshCore BLE, native USB, or Wi-Fi WebUI plus TCP/5000.
- BLE default pairing PIN: `123456`; a previously saved nonzero PIN still takes precedence.
- Normal installation: flash the selected application image at `0x10000`.
- Recovery images reset NVS-backed BLE/Wi-Fi state but end before SPIFFS, preserving MeshCore identity, contacts, channels, and preferences.
- Wi-Fi setup credentials and the resulting LAN IP are printed on the 115200-baud USB console.

The trusted-LAN warning matters: raw TCP/5000 exposes the full companion and administrative protocol to every client that can reach it.

The existing RC52 and RCC6 repeater/Room Server repositories already provide their screenless service profiles, so this suite release does not create duplicate repeater products.

## Suite assets

- `catalog.json` records every product release URL, exact source commit, install filename, size, and SHA-256 digest.
- `SHA256SUMS.txt` authenticates the catalog and exact suite source bundle.
- Product repositories remain the single owners of firmware binaries and setup packages.
1 change: 1 addition & 0 deletions firmware/rcc6-headless-companion
2 changes: 1 addition & 1 deletion scripts/verify_catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def main() -> None:
data = json.loads(CATALOG.read_text(encoding="utf-8"))
assert data["schema"] == 1
products = data["products"]
assert len(products) == 8
assert len(products) == 9
ids: set[str] = set()
names: set[str] = set()

Expand Down
Loading