Skip to content

feat: Add Inhero MR-2 repeater board variant#2316

Draft
liekmarflow wants to merge 2 commits intomeshcore-dev:devfrom
liekmarflow:pr/inhero-mr2
Draft

feat: Add Inhero MR-2 repeater board variant#2316
liekmarflow wants to merge 2 commits intomeshcore-dev:devfrom
liekmarflow:pr/inhero-mr2

Conversation

@liekmarflow
Copy link
Copy Markdown

Summary

Adds the Inhero MR-2, a purpose-built MeshCore repeater board for off-grid solar deployments. This PR introduces two commits:

  1. Generic board extension pattern — virtual hooks in MainBoard for tick(), get/set board.* CLI dispatch, and queryBoardTelemetry(). These are no-ops by default and don't affect existing boards.
  2. Inhero MR-2 variant — board definition, drivers, configuration, and documentation.

Note: Hardware is in pre-production. WEEE/CE certification is pending. The variant is fully functional and tested on prototype hardware.

Hardware

Component Detail
MCU + Radio RAK4630 (nRF52840 + SX1262)
Solar Charger TI BQ25798 Buck/Boost, MPPT, JEITA, 3.6–24 V input
Fuel Gauge TI INA228 (coulomb counting, 100 mΩ shunt)
RTC RV-3028-C7 (time base, wake-up timer)
Env. Sensor BME280 (temp, humidity, pressure)
Buck Converter TPS62840 (3.3 V rail)
PCB 45 × 40 mm, 4× M2.5 mounting

Key Features

  • Multi-chemistry: Li-Ion, LiFePO4, LTO (2S), Na-Ion — software-configurable, no hardware changes
  • MPPT solar charging: 3.6–24 V input, 50–1500 mA configurable charge current
  • Precision fuel gauging: coulomb counting + voltage correlation, temperature-derated SOC/TTL
  • Low-power: ~6 mA active idle (RX), < 500 µA sleep, ~15 µA system-off
  • Low-V sleep: RTC-triggered recovery checks, solar charging continues in sleep
  • Board CLI: 13 getters + 8 setters via get/set board.* (battery config, telemetry, diagnostics)
  • CayenneLPP telemetry: battery V/I/SOC, solar V/I, temperature, TTL

Build Environments

Environment Firmware
Inhero_MR2_repeater Standard repeater
Inhero_MR2_repeater_bridge_rs232 Repeater + RS232 bridge
Inhero_MR2_sensor Sensor node

Changes to Core

Commit 1 adds 30 lines across 4 files — all additive, no existing behavior changed:

  • src/MeshCore.hCayenneLPP forward declaration + 4 virtual methods on MainBoard
  • src/helpers/CommonCLI.cppget board.* / set board.* dispatch (2 blocks)
  • examples/simple_repeater/MyMesh.cppboard.queryBoardTelemetry() call
  • examples/simple_repeater/main.cppboard.tick() call

Documentation

  • variants/inhero_mr2/README.md — compact board overview with key specs
  • Full documentation (datasheet, battery guide, FAQ, CLI reference): docs.inhero.de

Testing

  • Builds successfully (nRF52840, RAM 14.3%, Flash 50.8%)
  • Tested on prototype hardware
  • CE/WEEE certification (pending)

…I commands

Add virtual hooks to MainBoard for board-specific functionality:
- tick(): periodic board tasks (e.g., watchdog feeding)
- getCustomGetter()/setCustomSetter(): CLI 'get board.*'/'set board.*' dispatch
- queryBoardTelemetry(): board-specific CayenneLPP telemetry

This enables variant boards to expose custom sensors, configuration,
and telemetry without modifying core MeshCore code.
@liekmarflow liekmarflow force-pushed the pr/inhero-mr2 branch 2 times, most recently from 2714460 to 90a714c Compare April 16, 2026 15:28
@liekmarflow liekmarflow changed the title feat: Add Inhero MR-2 repeater variant feat: Add Inhero MR-2 repeater board variant Apr 16, 2026
Hardware: RAK4630, BQ25798 MPPT solar charger with Power Path, INA228 fuel gauge, RV-3028-C7 RTC, BME280.

Features:
- Multi-chemistry support: Li-Ion, LiFePO4, LTO, Na-Ion with JEITA
- 3.6-24V MPPT solar charging
- Precision fuel gauging via INA228 (coulomb counting + voltage correlation)
- Low-power: ~6 mA active idle (RX), < 500 uA sleep, ~15 uA system-off
- Low V Sleep with RTC-triggered recovery checks
- Configuration via custom CLI commands via get/set board.* extension pattern

Includes: board definition, variant config, I2C drivers (BQ25798, INA228),
BoardConfigContainer.
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.

1 participant