# Telemetry decoder Paste raw hexadecimal packet data copied from the [Let's Mesh packet analyzer](https://analyzer.letsmesh.net/packets) to decode a repeater's scheduled temperature or battery-voltage snapshot. The decoder also accepts the payload hex without its MeshCore packet header. Decoding happens entirely in this browser; pasted data is not uploaded or sent anywhere. The **Repeater ID** in the result is the first eight bytes of the sending repeater's public key. Match that 16-character hex value against the public-key prefix recorded for your repeaters. It comes from the telemetry payload itself, so it is available even when only the payload was copied. ## Decode a packet
Try an analyzer example:

Spaces, line breaks, colons, dashes, a leading 0x, and a quoted JSON field are accepted. Legacy CLI Base64 replies are also auto-detected. Press Ctrl/Command+Enter to decode.

## Analyzer hex examples The buttons load synthetic, protocol-valid zero-hop RAW_CUSTOM packets. A real scheduled snapshot normally has 165 samples and is much longer. Routed packets also contain path bytes before the `TTB1` or `TVB1` payload magic; the decoder finds and validates the payload automatically. ### Temperature ```text 3E00545442311122334455667788800092651E0008000102354A4E5082 ``` ### Battery voltage ```text 3E00545642311122334455667788800092651E000800010264C8FEFFDC ``` Both examples identify the source as repeater ID `1122334455667788`. ## Legacy CLI replies The same page continues to decode the padded Base64 returned by these administrator commands: | Data | Newest page | Older-page example | Samples per page | |---|---|---|---| | MCU temperature | `get telemetry.temp` | `get telemetry.temp 2` | 48 (24 hours) | | Battery voltage | `get telemetry.volt` | `get telemetry.volt 3` | 48 (24 hours) | | GPS position | `get telemetry.gps` | `get telemetry.gps 2` | 24 (12 hours) | Paste either the complete reply beginning with `> ` or Base64 alone. For example: ```text get telemetry.volt 1 > EkDUcWoeMAAB5+bl5eTj4uLh4ODf3t7d3Nvb2tnZ2NfX1tXU1NPS0tHQ0M/Ozc3My8vKycnI/w== ``` ## Reading the table - Timestamps default to UTC. Select **Show browser-local time** to convert them for display and CSV export. - `TTB1` means a raw temperature snapshot and `TVB1` means a raw voltage snapshot. The input summary also reports the MeshCore route and path-hop count when a complete packet was pasted. - Temperature preserves exact whole degrees from `-50 C` through `+77 C`, plus missing, below-range, and above-range states. - Voltage preserves hundredths of a volt from `1.88 V` through `4.40 V`, plus missing and out-of-range states. - GPS positions are reconstructed from signed 10-meter differentials. A zero differential after the page origin is inherently ambiguous: it can represent an unchanged fix, movement below the encoded resolution, or no fix. The table labels those rows rather than inventing a coordinate. - A GPS clipping warning means at least one movement exceeded the differential range, so positions after that point can be less accurate. GPS history remains available through the administrator CLI, but `telemetry.tx` never puts GPS in RAW_CUSTOM packets. Therefore analyzer hex decoding supports only temperature and voltage; location data cannot be recovered through this page. For the byte-level layouts, see [Read repeater telemetry history](cli_commands.md#read-repeater-telemetry-history).