BROWSER-LOCAL LORAWAN WORKBENCH

Test the codec before the next sensor packet becomes a production mystery.

Paste the JavaScript you actually deploy, add real byte payloads and expected JSON, then run the whole fixture set in an isolated local sandbox. Modern TTN and ChirpStack functions and legacy Decoder or Encoder formats are supported.

  • Profiles TTN v3 · ChirpStack v4 · legacy
  • Price Free · open source
  • Execution Isolated in your browser
  • Output Fixtures · tests · report
PAYLOAD LAB
FPORT 4 · UPLINK temperature: -21.3°C
Fixture matches expected output
THE USEFUL PART

This is a test harness, not a decoder catalogue. It runs your codec against your payloads, shows exactly which fixture failed, and turns the result into tests you can keep beside the device integration.

RUN THE REAL CODE

Payload codec workbench

Start with a sample or paste a vendor codec. Each vector can exercise a different operation, fPort, payload encoding, variables, decoded input, and expected result.

Code and payloads stay local
LoRaWAN codec labDisposable sandbox · deterministic fixtures
01

Codec source

The sandbox exposes only the formatter input. Network, storage, imports, and page access are unavailable.

02

Test vectors

03

Results and exports

Run one vector or the complete set to see output, contract findings, byte reads, and expected-value differences.

Opaque-origin worker sandbox1 second execution limitNo upload or persistence

FROM VENDOR PDF TO REGRESSION TEST

A codec workflow that survives the pilot

The same fixtures can be used while translating a vendor specification, migrating network servers, and reviewing later firmware changes.

  1. 01

    Paste the deployed formatter

    Use the exact JavaScript from the device profile, including helper functions and lookup tables.

  2. 02

    Add real packets and expectations

    Capture representative uplinks and downlinks, then state the complete JSON result you expect.

  3. 03

    Export a durable test

    Keep the generated fixtures and Vitest file with the integration so firmware or codec changes cannot silently reinterpret field data.

BUILT FROM FIELD WORK

Useful when the fleet contains more than one happy-path device

Wavect wrote uplink decoders and downlink encoders while integrating multi-vendor hardware into a city-scale LoRaWAN platform. The expensive bugs were rarely syntax errors. They were quiet disagreements about bytes, ports, firmware variants, and output contracts.

Both network-server conventions

Exercise modern The Things Stack and ChirpStack signatures or older Decoder and Encoder functions without creating an application first.

Expected output, not visual optimism

A pretty JSON preview is not a test. Fixtures fail when the complete output differs from the value you declared.

Artifacts that leave the browser

Export portable vectors, a runnable test file, or a Markdown report for a pull request and handover.

HONEST LIMITS

What the workbench cannot prove

  • It uses browser JavaScript semantics. Embedded runtime limits and engine-specific behavior still need a final test in the target network server.
  • It reports an endian or signedness problem only when an expected result exposes the mismatch. It does not guess the vendor's intended byte order.
  • It tests application payload formatters, not LoRaWAN encryption, radio coverage, join behavior, duty cycle, or gateway scheduling.
  • A passing fixture set verifies the supplied cases. It is not proof that every firmware payload variant is covered.

Questions about the codec tester

No. Code and fixtures are passed to a disposable browser worker inside an opaque-origin sandbox. They are not sent to Wavect or saved after the page is closed.
Yes. Their current JavaScript codec contracts use decodeUplink and encodeDownlink style functions. The tool also supports legacy Decoder and Encoder signatures used by older deployments.
Yes. Create named vectors for each firmware and packet shape, or export separate fixture files when the codec itself differs.
Only when you provide an expected result. Several byte interpretations can be syntactically valid, so the tool does not invent device semantics that are absent from your fixture.

FREE · OPEN SOURCE · NO UPLOAD

Turn the packet that failed today into the test that protects tomorrow.

Run the codec locally, export the fixtures, and keep the evidence with the integration.