Skip to content

Add Inhero MR2 board variant (nRF52840/RAK4630 solar repeater) - #3132

Open
liekmarflow wants to merge 8 commits into
meshcore-dev:devfrom
liekmarflow:feature/inhero-mr2-variant
Open

liekmarflow wants to merge 8 commits into
meshcore-dev:devfrom
liekmarflow:feature/inhero-mr2-variant

Conversation

@liekmarflow

@liekmarflow liekmarflow commented Aug 8, 2026 •

Copy link
Copy Markdown

Closes #3130. Adds the Inhero MR2, a solar repeater platform in production and maintained by its hardware manufacturer.

https://shop.inhero.de/en/products/inhero-mr-2-solar-mesh-repeater-board-rak4630-sx1262-mppt-red-ce-gepruft

Implementation scope

The board implementation is under variants/inhero_mr2/, with its definition in boards/inhero_mr2.json and MR2-specific host tests under test/. Periodic work uses the merged MainBoard::loop() hook; the board.* CLI uses MainBoard::handleCommand(). The MR2 sensor manager appends battery and solar telemetry using the existing CayenneLPP encoding and permission mask.

RTC initialization includes an INHERO_MR2-guarded configuration for this board's supply arrangement. Other boards retain the existing initialization path. The full EN/DE documentation is maintained in the manufacturer fork and linked from the variant README.

Hardware and features

  • RAK4630 (nRF52840 + SX1262), BQ25798 charger with 3.6-24 V solar input and MPPT, INA228 coulomb counter, RV-3028 RTC and BME280; 45 x 40 mm, CE-certified under RED 2014/53/EU.
  • Li-ion, LiFePO4, LTO and Na-ion profiles with per-chemistry charging and low-voltage thresholds. Li-ion and LiFePO4 use JEITA; LTO and Na-ion retain their chemistry-specific operation without JEITA supervision. The cell manufacturer's charging limits apply.
  • SOC tracking, seven-day energy statistics, estimated battery runtime, and battery/solar telemetry.
  • Power-management optimizations: averaged voltage monitoring, checked RTC scheduling, a one-hour low-voltage recovery interval, and persistent RTC configuration for operation without a separate backup battery. Periodic low-voltage wakes also maintain the configured charging and solar-input state.
  • Solar-input qualification and MPPT housekeeping, a common 2.50 V minimum system voltage, and precharge current aligned with the configured charge-current limit. get board.mpptdiag reports requested and actual charger settings through checked register reads.
  • Optional BME280 sea-level pressure (QNH): set board.altitude <m> stores installation altitude (-500 to 9000 m). set board.altitude clear selects station pressure and pressure-derived altitude. MR2 builds preserve the required floating-point checks under the nRF52 optimization settings.
  • Repeater, RS232 bridge and sensor environments: Inhero_MR2_repeater, Inhero_MR2_repeater_bridge_rs232, Inhero_MR2_sensor.

Configuration behavior

An actual battery-chemistry change starts with charging defaults: 200 mA maximum current, MPPT off, no manually configured capacity, no user JEITA override, and the default frost setting. Selecting the same chemistry preserves settings and SOC.

The optional Li-ion/LiFePO4 JEITA override is off by default. It requires explicitly configured capacity and maximum charge current strictly below 0.05C. Incompatible requests are declined; accepted settings persist. While enabled, incompatible current/capacity changes are declined. Enabling the override or switching it off resets fmax to 0%. The override bypasses both cold and hot JEITA cutoffs.

Validation

All three MR2 environments and RAK_4631_repeater build successfully for this update. Host checks cover charger configuration and diagnostics, averaged alerts, RTC register handling and the low-voltage control flow. The port retains the upstream board-loop, CLI and sensor-manager integration.

The latest power-management hardware tests were completed on the manufacturer's MeshCore v1.17.1-based MR2 repeater build using a shortened test interval, including repeated sleep/wake cycles and a live battery-chemistry change. Production firmware uses one hour. The corresponding dev-based PR changes are validated by builds and host tests; this update of the PR branch has not been flashed for a separate hardware run. Earlier MR2 hardware checks covered the sensor-manager integration and pressure/altitude telemetry.

Maintenance

I manufacture the board and operate it in the field, including solar repeater sites in Saxony with links from 70 km to over 100 km. I can validate changes on hardware and am happy to be tagged on anything affecting this variant.

Background: https://shop.inhero.de/en/blogs/news/warum-es-das-mr2-gibt

This variant was developed with AI assistance under my continuous engineering direction and review, followed by pre-submission review and hardware testing. Stated upfront in line with the project's position on code provenance.

@liekmarflow liekmarflow changed the title Feature/inhero mr2 variant Add Inhero MR-2 board variant (nRF52840/RAK4630 solar repeater) Aug 8, 2026
liekmarflow added a commit to liekmarflow/MeshCore that referenced this pull request Aug 8, 2026
…ev#3131/meshcore-dev#3132) - CONTEXT.md getrackt

Stand-Block neu: Issue + beide PRs mit Branch-Zeigern und Naechster-Schritt-
Ablauf nach Merge von meshcore-dev#3131. Ueberholte Doktrin ('kein PR-Verkehr zu
upstream') entfernt; stattdessen die Sicherungsregel: PR-Branches immer von
upstream/main schneiden. Feature-Branches als live PR-Koepfe markiert
(nicht loeschen). CONTEXT.md aus .gitignore genommen - auf main getrackt
ist sie PR-sicher, weil PR-Branches nie von Fork-main abstammen.
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch from fd7274b to 4ec5a55 Compare August 9, 2026 19:22
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch 2 times, most recently from 7f81a00 to 114eda0 Compare August 16, 2026 06:10
@liekmarflow liekmarflow changed the title Add Inhero MR-2 board variant (nRF52840/RAK4630 solar repeater) Add Inhero MR2 board variant (nRF52840/RAK4630 solar repeater) Aug 16, 2026
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch 2 times, most recently from bd8a5c7 to 732262c Compare August 21, 2026 16:49
liekmarflow added a commit to liekmarflow/MeshCore that referenced this pull request Aug 21, 2026
… of the story

The "Relation to upstream" section still described the variant as a
standalone out-of-tree product fork. That has not been true since
2026-08-08: meshcore-dev#3130 (hardware request), meshcore-dev#3131 (board hooks) and meshcore-dev#3132 (the
variant itself) are open upstream, and the fork releases are the interim
until those land.

It also left the April withdrawal unexplained. The board was not available
yet and CE certification was still in progress; both are settled now, which
is the reason the variant is being proposed again.
@liekmarflow
liekmarflow changed the base branch from main to dev August 26, 2026 17:43
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch from 771c4c4 to 0701fa0 Compare August 28, 2026 07:48
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch from 0701fa0 to 0e274c4 Compare August 28, 2026 13:26
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch 2 times, most recently from ab02af1 to 775bbe3 Compare September 22, 2026 06:03
Application-specific repeater platform for autonomous off-grid
operation, in production and field-deployed:

- RAK4630 core module (nRF52840 + SX1262), 45 x 40 mm
- BQ25798 buck/boost charger: universal solar input 3.6-24V with MPPT,
  JEITA temperature-controlled charging
- INA228 coulomb counter for SOC tracking and 7-day energy statistics
- Li-ion, LiFePO4, LTO and Na-ion battery chemistry profiles
- RV-3028 RTC wakeup with low-voltage system sleep (<500uA) and
  autonomous recovery
- BME280 environment telemetry
- board.* CLI namespace for configuration and diagnostics, dispatched
  through MainBoard::handleCommand()
- slim variant README; the full documentation set (EN/DE) is
  maintained in the vendor fork

Build environments: Inhero_MR2_repeater, Inhero_MR2_repeater_bridge_rs232,
Inhero_MR2_sensor.
@liekmarflow
liekmarflow force-pushed the feature/inhero-mr2-variant branch from 294fdd5 to 1b2e587 Compare September 22, 2026 06:51
@liekmarflow
liekmarflow marked this pull request as ready for review September 22, 2026 06:51
Align battery chemistry defaults and JEITA settings. Persist the MR2 RTC configuration and use averaged voltage monitoring with verified hourly wake scheduling.

Validated with the INA, RTC, UVLO, VSYSMIN and MPPT host checks; all three MR2 environments and the RAK4631 repeater build pass.

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.

[Feature request] Hardware support: Inhero MR-2 (CE-certified BQ25798/RAK4630 based solar repeater board)

1 participant