Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed Changes
Add a native, receive-only Wireless M-Bus app under Radio Frequency > Wireless M-Bus. It receives T1/C1 telegrams at 868.95 MHz using the CC1101, validates DLL CRCs and lists up to 96 devices with IDs, manufacturer/header details, RSSI/LQI, counts and hex data. Supported numeric DIF/VIF records are interpreted only when the application data is explicitly unencrypted. The latest valid telegram per device can be exported to SD as JSONL.
What Wireless M-Bus is for: Wireless M-Bus (wM-Bus, EN 13757-4) transmits consumption readings from water, gas, heat and electricity meters, as well as heat-cost allocators, to readers or gateways. It is particularly widespread in Europe. Regional profiles and frequency bands vary; this implementation specifically targets T1/C1 reception at 868.95 MHz. Background: M-Bus and Texas Instruments.
This allows Bruce users to inspect compatible meter telegrams and check reception on a supported CC1101 device. The current JavaScript interface does not expose the required packet receiver, so the implementation is native. No keys, decryption or transmit functionality are introduced by this app.
The contribution includes English and German documentation, host tests and a minimal RF-menu/README entry. Two local build compatibility fixes are isolated in a separate prerequisite commit: pinning FastLED 3.10.3 and using the installed Xtensa objcopy directly, with failure handling before SDK archive renames.
Types of Changes
New RF feature, documentation and host tests; separate build compatibility fix.
Verification
On a LilyGO T-Embed CC1101 Plus, select the CC1101 RF module and open Radio Frequency > Wireless M-Bus > Scan T1/C1 868.95. Receive a supported transmission and inspect the device list/details. Detail viewing pauses reception; return to resume. Stop scanning before using Export devices to SD.
See docs/wireless-mbus.md and docs/wireless-mbus.de.md for operation and remaining hardware checks. Reception uses Bruce's board-specific RF initialization and restores saved radio configuration on exit. The table is limited to 96 devices; the export is a device snapshot rather than continuous logging. Protected/unsupported data remains raw bytes, and a valid CRC is not sender authentication. The display/SD/radio shared SPI bus can cause reception gaps during screen updates.
Testing
Linked Issues
Community introduction and hardware feedback: #3068
User-Facing Change
Further Comments
The existing development release provides the hardware-tested full image and its corresponding source tag. This PR uses a separate contribution branch focused on the receiver, tests and documentation.
Protocol references and AGPL-3.0-or-later licensing are documented. Implementation developed with Codex assistance; real reception tested by the device owner.