RELEASE v1.0 IMPSPRGM™ IFP/2 reference implementation · supplied under a written Licence Agreement on a per-unit basis.
Licensing & IP →
IMPSPRGM technology stack · release

IFP/2 Reference SDK & Fabric 2.0 Firmware

Release v1.0 — the C99 reference implementation of the IFP/2 protocol, plus the firmware implementation pack for the two Generation-2 reference boards (R1 and R2).

C99 · allocation-freeHost-verified build6 canonical vectorsMake + CMakeR1 · STM32U575 + EC200UR2 · RA6M5 + SIM7672

Two packages make up this release: the transport-neutral IFP/2 core SDK (verified on a host compiler) and the Fabric 2.0 firmware pack that ports it to the R1/R2 boards and maps IFP/2 services onto the Quectel and SIMCom modems. Both are reference implementations, distributed under the IMPSPRGM licence.

✓ What is verified

The SDK core is built and tested on a host compiler with the strictest flags. These are the real results of this release:

$ cc -std=c99 -Wall -Wextra -Werror -O2 -Iinclude  src/*.c tests/test_main.c -o ifp2_tests
   (clean — no warnings, no errors)
$ make test
   IFP/2 SDK tests: PASS
$ python3 tools/verify_vectors.py
   01_hello OK   02_heartbeat OK   03_socket_connect OK   04_binary_event OK
   90_bad_header_crc OK   91_bad_payload_crc OK        (6/6 vectors, incl. 2 negative-CRC)
$ ./ifp2_minimal
   49 50 20 14 ...   → MAGIC 0x4950 "IP", VERSION 0x20, HEADER_LEN 20  (spec-correct)

The firmware pack (R1/R2 board ports and modem providers) is a reference skeleton for on-target bring-up; its Generation-2 hardware qualification (72 h traffic, 1 000 resets, USB throughput, power budget) is a bench milestone in progress, not claimed as complete.

Downloads

IFP/2 Reference SDK

v1.0 · C99 · ~22 KB · no vendor SDK code
  • Raw frame encoder/decoder · CRC16-CCITT-FALSE + CRC32/IEEE
  • UART COBS envelope · allocation-free TLV writer/parser
  • Service registry + recovery/session state skeleton
  • Host unit tests · 6 canonical positive/negative vectors
  • Make + CMake · minimal encoding example
Download SDK (.zip)

Fabric 2.0 Firmware Pack · R1/R2

v1.0 · reference skeletons · ~3 MB
  • R1 · STM32U575 port + Quectel EC200U (AT / QuecOpen) provider
  • R2 · Renesas RA6M5 port + SIMCom SIM7672 (AT / Embedded AT) provider
  • Common platform + AT transaction engine + provider interface
  • Bring-up checklists, provider service map, implementation milestones
  • Bundles the IFP/2 SDK for a self-contained integration
Download Firmware Pack (.zip)

See also the frozen IFP/2 Specification v1.0 (PDF) and the Fabric 2.0 architecture.

What is in the SDK

A deterministic, dependency-free core. It performs no malloc() — every buffer is caller-owned or statically bounded — so it drops into a bare-metal loop, a cooperative scheduler or an RTOS task unchanged.

IFP/2 fixed 20-byte frame layout
The fixed 20-byte IFP/2 header, followed by payload and a CRC32 tail — exactly what the SDK encodes and the vectors verify.

Build on a host

make            # builds ifp2_tests + ifp2_minimal
make test       # -> IFP/2 SDK tests: PASS

# or with CMake:
cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

For embedded integration, copy include/ifp2 and src into the firmware project and implement the platform hooks (platform_now_ms, platform_uart_send, platform_peer_reset, journal/power) separately. No vendor SDK header ever reaches the application layer — that is the core contract.

What is in the firmware pack (R1/R2)

The layer above the SDK: it splits the node into a deterministic MCU side (control, measurement, safety, IFP/2 core, transaction journal) and a provider side (the modem, exposing only capabilities its firmware actually implements). It deliberately does not invent pin numbers or vendor SDK calls — those are bound to the exact board revision and vendor documentation.

ReferenceControl pathProviders included
R1 · STM32U575 + Quectel EC200UUART control · optional qualified USB bulkEC200U AT provider · QuecOpen provider skeleton
R2 · Renesas RA6M5 + SIMCom SIM7672SCI/UART control · optional qualified USB bulkSIM7672 AT provider · Embedded-AT provider skeleton

Provider service map — capability-gated

A service exists only when the selected modem firmware actually implements it. Nothing is inferred from a model name.

IFP/2 serviceEC200U baselineSIM7672 baselineRule
SYSTEM · HEALTHlocal providerlocal providerrequired
NETWORK · SOCKETAT or QuecOpenAT or Embedded ATrequired
MQTT · HTTP · SMS · STORAGEdocumented API / socket appdocumented API / socket appcapability-gated
GNSS · BLUETOOTHonly supported variantonly supported variantnever infer
COMPUTE · FOTAproject-defined jobproject-defined jobprovider-specific

Implementation milestones

Bring-up is staged from board control to full qualification:

M0 Board control (power, reset, boot, console)   M4 Transactions (journal + query semantics)
M1 AT-only connectivity (NETWORK + SOCKET)       M5 Provider extension (QuecOpen / Embedded AT)
M2 IFP/2 control plane (frame/TLV/session)        M6 Bulk transport (USB qualification)
M3 Recovery (reset injection, resync, degraded)   M7 Qualification (72 h, 1000 resets, power/mem)

Status & scope (honest by design)

  • The IFP/2 protocol is frozen for Generation 2; erratum v1.0.1 fixes the magic-byte ordering (compare bytes 0x49 0x50 directly, not as a little-endian integer).
  • These packages are reference implementations / skeletons, not a modem-vendor SDK. Vendor APIs live behind the Provider Adapter only.
  • Cryptographic transforms (SEC1/SEC2) are integration hooks, not embedded crypto in this release; CRC remains the normative transport integrity check.
  • SPI/USB bulk and any specific chip pair are not marked production-validated until bench qualification (M6/M7) is measured.

Licensing

IMPSPRGM™ is proprietary technology of LLC IMPSPRGM (Tashkent, Uzbekistan), distributed under a written Licence Agreement on a per-unit basis. The IFP/2 protocol, the reference SDK and the firmware pack remain the property of LLC IMPSPRGM; redistribution and derivative works require prior written consent. Commercial inquiries: impsprgm@umail.uz · International PCT application PCT/UZ2022/050001.

← Fabric 2.0 architecture   Back to home