One signed bundle updates both cores of a dual-chip node over a single GSM link. Reference design: SIM800C (SIMCom) + STM8 (STMicroelectronics) — no external programmer, no field visit.
This page builds on IMPSPRGM · Interprocessor OS →. The three logical buses and the Translator described there are the transport for everything below.
A dual-chip telemetry node has two firmware images that must always agree: the radio-side application running inside the modem, and the real-time logic on the MCU. In a conventional design each is updated by its own path — the modem app through the vendor's flash tooling, the MCU through a wired programmer on a service bench. That means a technician has to physically reach a device that may be inside a wall, a pit or a sealed enclosure; the two images can drift out of step; and a half-finished write on an 8-bit MCU with no second bank can brick the unit permanently.
Interprocessor OTA removes the programmer and the site visit. A single signed bundle arrives over the air, and the two cores update themselves in a coordinated, reversible sequence — using resources that are already on the board.
The modem is the only part of the node with a wide-area link, megabytes of flash and a TCP stack, so it acts as the update host. The MCU is the update target that cannot reach the network on its own. IMPSPRGM lets the host flash the target across the same three-bus link used at runtime.
Because the update rides the existing buses, no extra pins, no debug header and no second radio are required. The MCU is written through its own on-chip mechanisms — the built-in UART bootloader for a full re-flash, or in-application programming (IAP) for a running update — both driven remotely by the modem.
Short opcodes move the target between states: OTA_BEGIN, ENTER_BOOTLOADER, ERASE_PAGE(n), OTA_COMMIT, OTA_ABORT. Each side serves only the opcodes it can, so the same sequence works whether the MCU is updated via its bootloader or via IAP.
The bulk of the work is a stream of remote procedure calls: write_page(addr, bytes) → ack and read_crc(addr, len) → crc16. Every page written to the target is read back and checksummed over the same call, so a corrupted transfer is caught immediately and re-sent, not discovered after reboot.
Asynchronous tokens report progress (page k/N done), power events (a brown-out during flashing), and operator aborts. A low-battery interrupt can pause an update before an unsafe write and resume it after the next uplink.
OTA_BEGIN, then streams write_page / read_crc pairs to the MCU while staging its own image.OTA_COMMIT at one point; a post-boot health handshake confirms success — otherwise both revert.The old images are never erased until the new ones have booted and answered a health handshake across the bus. An interrupted download, a bad page, or a core that fails to check in all resolve to the same safe outcome: the node keeps running the last known-good firmware and reports the failure on its next uplink. There is no state in which one core is new and the other is old.
Only the changed regions travel: the bundle carries per-core deltas, not whole images, which keeps a routine update within a handful of kilobytes on the cellular link. The transfer reuses the socket that is already open for telemetry, and the MCU is only woken for the short windows in which it is actually being written — consistent with the anti-phase power strategy of the Interprocessor OS.
IMPSPRGM™ is proprietary technology of LLC IMPSPRGM (Tashkent, Republic of Uzbekistan). The technology — including the reference firmware, the translator mechanism, the three-bus protocol, the over-the-air update path, the hardware integration library and the supporting design files — is distributed exclusively under a written Licence Agreement between LLC IMPSPRGM and the Licensee.
The licence is granted on a per-unit (per-device) basis. The Licence Agreement specifies the exact number of end devices in which IMPSPRGM may be embedded, and any additional units above that number require either a licence extension or a new agreement.
Commercial inquiries and per-unit quotations: impsprgm@umail.uz
The IMPSPRGM technology is protected under the international Patent Cooperation Treaty (PCT). The application was filed electronically via ePCT-Filing and acknowledged by the Receiving Office.
| Submission Number | 050001 |
|---|---|
| Application Number | PCT/UZ2022/050001 |
| Date of Receipt | 29 December 2022 |
| Receiving Office | Intellectual Property Agency under the Ministry of Justice of the Republic of Uzbekistan (RO/UZ) |