M0LTE.Il2p 0.2.0

dotnet add package M0LTE.Il2p --version 0.2.0
                    
NuGet\Install-Package M0LTE.Il2p -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="M0LTE.Il2p" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="M0LTE.Il2p" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="M0LTE.Il2p" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add M0LTE.Il2p --version 0.2.0
                    
#r "nuget: M0LTE.Il2p, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package M0LTE.Il2p@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=M0LTE.Il2p&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=M0LTE.Il2p&version=0.2.0
                    
Install as a Cake Tool

M0LTE.Il2p

A managed IL2P (Improved Layer 2 Protocol) v0.6 codec for .NET, extracted from the pdn-soundmodem packet-radio modem. It maps AX.25 frames to and from the IL2P wire format — Type 0/1 headers, the packet-synchronous scrambler, Reed-Solomon FEC and block segmentation — including the IL2P+CRC extension, and provides a streaming bit-level deframer for a demodulator to feed. Dire Wolf / NinoTNC interoperable.

Install

dotnet add package M0LTE.Il2p

Encode / decode a frame

using M0LTE.Il2p;

byte[] ax25 = /* an AX.25 frame: addresses + control + PID + info, no flags/FCS */;

// Encode to the IL2P wire bytes (header + payload blocks [+ CRC]), sync word excluded.
byte[] wire = Il2pCodec.Encode(ax25, appendCrc: true);

// Decode back. A CRC mismatch doesn't fail the decode — it's reported in info.CrcValid.
if (Il2pCodec.TryDecode(wire, hasTrailingCrc: true, out byte[] decoded, out Il2pDecodeInfo info))
{
    // decoded == ax25 ; info.CrcValid tells you whether the IL2P+CRC checked out
}

Streaming receive

A demodulator pushes raw bits; the deframer hunts the sync word, collects the header and payload, RS-corrects and raises complete AX.25 frames:

var deframer = new Il2pDeframer(
    frameReceived: (frame, info) => { /* a recovered AX.25 frame + decode diagnostics */ },
    crcMode: true);
foreach (int bit in demodulatedBits)
    deframer.PushBit(bit);

(Exact constructor/event/method signatures are in the XML docs shipped with the package.)

Licence & provenance

GPL-3.0-or-later (see LICENSE) — parts of the scrambler and header bit-field placement are derived from Dire Wolf's GPL source; the rest is transcribed from the IL2P specification. See PROVENANCE.md.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on M0LTE.Il2p:

Package Downloads
pdn-soundmodem

Headless soundcard packet modem core: IL2P/AX.25 framing and FEC now; demodulators, KISS TCP and DCD to follow.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 155 8/7/2026
0.1.2 550 8/1/2026
0.1.1 107 8/1/2026
0.1.0 143 7/17/2026