Coldwave Yuki Module (YMOD) — Integrations- & Betriebshandbuch

Produkt
Coldwave Yuki Module
Modell
YMOD — ein Source-Tree, zwei Modem-Varianten über den Build-Flag YUKI_MODEM: eg912 (Default) / bg77
Produktklasse
Zellulares Connectivity-Modul (Einbaukomponente für einen Host-MCU)
Hersteller
ImagineOn GmbH, Neusser Str. 27–29, 50670 Köln, Deutschland
Firmware-Version
1.0.0
HW-Plattform
Silicon Labs EFR32MG26 (ARM Cortex-M33), coldwave-os 2.2.0
Service-UUID
00000000-0000-1000-8002-006D0099AB53
Dokumentversion
1.0 — 2026-07-13
Sprachen
Deutsch (Original), Englisch, Französisch
Hinweis zum Lesen. Das Coldwave Yuki Module (YMOD) ist ein Funkmodul zur Einbettung auf einer kundenseitigen Trägerplatine. Dieses Handbuch richtet sich an Integratoren (Hardware-/Firmware-Entwickler der Trägerplatine bzw. des Host-MCU) und an Anlagenbetreiber. Es beschreibt die logische Host-Schnittstelle (UART-Protokoll), die Mobilfunk-/Backend-Anbindung, die Statussignalisierung, die Sicherheitsarchitektur und die regulatorischen Angaben. Mechanische, elektrische und layoutbezogene Kenndaten des Moduls liegen im begleitenden Hardware-Integrationsdatenblatt; wo dieses Handbuch sie nicht aus dem Firmware-Stand ableiten kann, sind sie als [zu bestätigen] markiert.
Inhalt
  1. Über dieses Dokument
  2. Hersteller, CE, vereinfachte EU-Konformitätserklärung
  3. Bestimmungsgemäße Verwendung
  4. Modul-Identifikation & Varianten
  5. Sicherheit
  6. Modul-Übersicht & Architektur
  7. Host-Schnittstelle: Signale & Belegung
  8. Integration (Einbau, Antenne, Versorgung)
  9. UART-Host-Protokoll (TLV + CRC-16)
  10. Erstinbetriebnahme, Identität & Claim-Code
  11. Betrieb & Konfiguration
  12. GNSS-Positionsbestimmung (nur bg77)
  13. Firmware-Updates (OTA) & Secure Boot
  14. Status-LEDs & NW_ERR-Signal
  15. Reset & Factory-Reset
  16. Cybersicherheit (EN 18031-1) — Hinweise für Integratoren/Betreiber
  17. Mobilfunk-Konnektivität & Recovery
  18. Wartung
  19. Funkparameter
  20. Technische Daten (Übersicht)
  21. Troubleshooting
  22. Außerbetriebnahme & Entsorgung
  23. Support, Schwachstellen-Meldung, Sicherheits-Support
  24. Software-Komponenten & Lizenzen
  25. Glossar
  26. Änderungshistorie

1. Über dieses Dokument

Dieses Handbuch beschreibt Integration und Betrieb des Coldwave Yuki Module (YMOD) der ImagineOn GmbH — eines zellularen Connectivity-Moduls, das eine Trägerplatine bzw. einen Host-MCU über ein lokales UART-Protokoll an das Coldwave-Backend anbindet. Zielgruppe sind Integratoren (Entwicklung der Trägerplatine und der Host-Firmware) sowie Anlagenbetreiber.

Das YMOD ist eine Einbaukomponente. Bestimmte konformitäts- und sicherheitsrelevante Schritte (RF-Layout, Antennenpfad, Schlüssel-Provisioning, Secure-Boot-/Anti-Rollback-Konfiguration, Watchdog-Aktivierung, Endprodukt-Zertifizierung) liegen in der Verantwortung des Integrators bzw. des Endprodukt-Herstellers — siehe §16 und den Modul-Integrationsnachweis in der technischen Dokumentation.

2. Hersteller, CE, vereinfachte EU-Konformitätserklärung

2.1 Hersteller

ImagineOn GmbH
Neusser Str. 27–29
50670 Köln, Deutschland
Web: https://www.imagineon.de
Compliance: compliance@imagineon.de · PSIRT: security@coldwave.io

2.2 CE-Kennzeichnung & angewandte Rechtsvorschriften

Die Konformitätsbewertung erfolgt nach Modul A (interne Fertigungskontrolle). Angewandte EU-Rechtsakte:

2.3 Vereinfachte EU-Konformitätserklärung (Art. 10 (9) RED)

Hiermit erklärt die ImagineOn GmbH, dass der Funkanlagentyp Coldwave Yuki Module (YMOD) (Varianten eg912 / bg77) der Richtlinie 2014/53/EU entspricht. Der vollständige Text der EU-Konformitätserklärung (Nr. YMOD-DoC-1.0.0, ausgestellt am 2026-06-07, Quell-Commit 7247ed2b53) ist Teil der technischen Dokumentation und beim Hersteller verfügbar (compliance@imagineon.de). Online-Bezugsquelle: [zu bestätigen].

2.4 Angewandte harmonisierte Normen

BereichNorm
SicherheitEN 62368-1:2020+A11:2020
HF-ExpositionEN 50665:2017
EMV (Funk)EN 301 489-1 V2.2.3, EN 301 489-17 V3.2.4, EN 301 489-52 V1.2.1
Funk (Mobilfunk)EN 301 908-1 V15.2.1, EN 301 908-13 V13.2.1
CybersicherheitEN 18031-1:2024
Vorausschauend (CRA)ETSI EN 303 645 V3.1.3

Hinweis: Das EFR32MG26-SoC enthält ein BLE-/802.15.4-Funkteil, das in beiden YMOD-Varianten per Firmware nicht verlinkt ist (kein Stack im Build). Es ist ein plattformbezogener Vorhalt für künftige Varianten. Frequenz, Modulation und Sendeleistung des Mobilfunkteils sind vollständig durch das jeweils bestückte, vorzertifizierte Quectel-Modul (EG912 bzw. BG77) spezifiziert; YMOD enthält kein eigenes Funkdesign.

3. Bestimmungsgemäße Verwendung

Das YMOD ist ein zellulares Connectivity-Modul zur Einbettung auf einer kundenseitigen Trägerplatine. Es übernimmt für einen Host-MCU die Mobilfunkanbindung (LTE), die DTLS-gesicherte Backend-Kommunikation (Telemetrie/Property-Sync, Remote-Konfiguration, OTA-Trigger), die Geräteidentität sowie — in der bg77-Variante — die GNSS-Positionsbestimmung, und stellt diese Dienste über ein TLV-basiertes UART-Protokoll bereit.

Typischer Einsatz: als bestücktes Funkmodul in Industrie-/Gewerbeumgebungen. Die Versorgung erfolgt über die Trägerplatine (SELV/PELV).

Nicht bestimmungsgemäß ist insbesondere:

YMOD führt kein Modbus-/BACnet-Feldbus-Gateway, kein Scripting/Script-VM, keine Supercaps/Power-Fail-Pufferung, kein batteriegepuffertes RTC und kein Datenbudget. Diese in den yukiblock-Schwesterprodukten vorhandenen Funktionen sind für YMOD ersatzlos entfallen.

4. Modul-Identifikation & Varianten

4.1 Firmware-Identität

FeldWert
Produkt-ID (product_id)YMOD
HW-ID (hw_id)EFR32MG26
Firmware-Version1.0.0 (Build-Konstante APP_VERSION_STR, aus Git-Tag bei Release)
Service-UUID00000000-0000-1000-8002-006D0099AB53 (YMOD_SRV_UUID)
Kunden-Service-UUID00000001-0000-1000-8002-006D0099AB53 (CUST_SRV_UUID) — über UART SET_UUID parametrierbar
Geräte-IDIMEI (15 Ziffern) des Mobilfunk-Moduls

4.2 Modem-Varianten (ein Source-Tree, Build-Flag YUKI_MODEM)

Merkmaleg912 Defaultbg77
Mobilfunk-ModulQuectel EG912Quectel BG77
FunktechnikLTE Cat-1LTE-M / NB-IoT
GNSSneinja (integriert, Empfangs-only)
Modem-Host-Link-Baud (modul-intern, Modul↔Modem)2 100 000 Baud115 200 Baud
LTE-Quality-ModellCat-1 (Tau 20 min)LTE-M (Tau 1 min)
Build-DefinitionYUKI_MODEM_EG912=1YUKI_MODEM_BG77=1, YUKI_MODEM_WITH_GNSS=1

Beide Varianten sind funktional identisch, abgesehen vom Modem, dem GNSS-Pfad und dem LTE-Quality-Modell. Der Modem-Host-Link-Baud bezeichnet die modul-interne Verbindung zwischen YMOD und dem Quectel-Modem — nicht die Baudrate der Host-UART-Schnittstelle zum Kunden-MCU (siehe §7/§9).

4.3 Kennzeichnung

Die technische Geräte-ID ist die IMEI; sie wird beim ersten Boot aus dem Modem ausgelesen, plausibilisiert und persistiert. HW-Revision, Modul-Labeling und Seriennummern-Vergabe sind im Hardware-Datensatz definiert: [zu bestätigen].

5. Sicherheit

Integration und Inbetriebnahme nur durch qualifiziertes Personal. Vor Arbeiten an der Trägerplatine die Versorgung abschalten. ESD-Schutzmaßnahmen beim Handling des Moduls einhalten.

5.1 Sicherheitshinweise

5.2 HF-Expositionsschutz

Die Sendeleistung des Mobilfunkteils wird durch das jeweils bestückte Quectel-Modul bestimmt. Die HF-Expositionsbewertung nach EN 50665 erfolgt auf Endprodukt-Ebene durch den Integrator, einschließlich der Festlegung des erforderlichen Mindestabstands. Der GNSS-Empfänger der bg77-Variante ist reiner Empfänger (keine Sendeeigenschaft).

6. Modul-Übersicht & Architektur

Das YMOD läuft als einzige Software auf einem EFR32MG26 (Cortex-M33) auf coldwave-os 2.2.0. Die Firmware ist bewusst schlank aufgebaut:

┌───────────────────────────────────────────────────────────────┐
│  Applikation (firmware/src/)                                   │
│  ├─ main.cpp        Identität (product_id="YMOD",              │
│  │                  hw_id="EFR32MG26"), Modem-Init-Blob         │
│  ├─ app.cpp         yuki_app_init(): Board + Connectivity-      │
│  │                  Supervisor + Coldwave-Service + Backend     │
│  ├─ app/app_main.cpp UART-Server, GNSS (nur bg77),             │
│  │                   GPIO0/1-Tags, SYNC, Status-LEDs, Sync-Loop │
│  ├─ app/app_status.cpp  Status-LED-Zustandsmaschine           │
│  ├─ app/mcc_timezone.c  MCC → POSIX-TZ                         │
│  ├─ uart_protocol/  TLV-Server + CRC-16 + Handler + IO         │
│  └─ cli/cli.c       Serielle Diagnose-CLI                      │
├───────────────────────────────────────────────────────────────┤
│  coldwave-yuki-core 1.0.0 (In-House, gepinnt):             │
│  Connectivity-Supervisor + Recovery + LTE-Quality.             │
│  Power-Fail / Budget auskompiliert (YUKI_CORE_WITH_*=OFF).     │
├───────────────────────────────────────────────────────────────┤
│  coldwave-os 2.2.0: Kernel (FreeRTOS), lwIP, mbedTLS/PSA,      │
│  DTLS, OTA, KV-FS, AT-Modem-Treiber, MCUboot-Bootloader        │
└───────────────────────────────────────────────────────────────┘

Die primäre lokale Angriffsfläche ist der UART-Protokoll-Server (§9). Die Backend-Anbindung (DTLS/LTE), OTA, das KV-FS und die PSA-Kryptografie sind an coldwave-os delegiert; die Connectivity- und Recovery-Logik sowie das LTE-Quality-Modell stammen aus coldwave-yuki-core.

7. Host-Schnittstelle: Signale & Belegung

Das YMOD stellt dem Host-MCU die folgenden logischen Signale bereit. Die physische Zuordnung zum Modul-Footprint (Pin-/Pad-Nummern) ist im Hardware-Integrationsdatenblatt festgelegt: [zu bestätigen].

SignalRichtungFunktion
Host-UART (uart1): TXD, RXD, RTS, CTSbidirektionalLokales TLV-Protokoll zum Host-MCU (§9). 8-N-1; HW-Flow-Control-Leitungen (RTS/CTS) vorhanden. Host-UART-Baudrate: [zu bestätigen] (im geprüften Firmware-Stand keine Build-Konstante; bei der Integration festzulegen).
GPIO0 / GPIO1Ausgang (Modul → Träger)Service-Tags: über das Backend bzw. per UART (SET auf Property 0x2000/0x2001, Typ BOOL) schaltbare Ausgangspins.
SYNCEingang (Träger → Modul)Interrupt-Eingang; eine steigende Flanke löst einen sofortigen ereignisgetriggerten Backend-Sync aus.
SLEEPEingang (Pull-up)Low fordert Low-Power-/Sleep-Behandlung an (Reserve-Pfad).
NW_ERRAusgang (Modul → Träger)Hardware-Signal „Backend-Link gestört": High bei Mobilfunk-/Backend-Fehler, Low sobald das Backend angebunden ist.
LED_GREEN / LED_REDAusgangStatus-LED-Ansteuerung (§14).
Mobilfunk-AntennenportHF50 Ω, gemäß Quectel-RF-Vorgaben.
GNSS-Antennenport bg77HF (Rx)Nur bg77-Variante; Antennenpfad gemäß BG77 GNSS Application Note.
SIM-SchnittstelleSIM/eSIM auf Träger/Modul; Form-Faktor und ESD-Schutz: [zu bestätigen]. Netzprofil (APN/MNO) ist Firmware-Build-Konstante.
Versorgung / GNDSELV/PELV von der Trägerplatine.
SWD/JTAG + SEGGER RTTDebugNur physisch über JTAG/SWD erreichbar; im Auslieferungszustand durch den Gecko-Security-Element-Debug-Lock gesperrt.

Reservierte/plattformseitige Pins: ein BLE-Eingang und ein POWER-GOOD-Eingang sind im Board-Bring-up konfiguriert, aber im aktuellen Funktionsumfang nicht produktiv verwendet.

8. Integration (Einbau, Antenne, Versorgung)

9. UART-Host-Protokoll (TLV + CRC-16)

Der UART-Protokoll-Server (src/uart_protocol/yuki_module_server.c) ist die lokale Schnittstelle des Moduls zum Host-MCU und zugleich seine primäre Angriffsfläche. Er wird über strikte Frame-, Längen- und CRC-Validierung abgesichert (Fuzzing-getestet). Es findet keine Authentifizierung statt — die Strecke gilt als baugruppen-/modulintern (vertrauenswürdiger Host-Link).

9.1 Frame-Format

┌──────────── Header (2 Byte) ────────────┬── Payload (0..511) ──┬── CRC (2 Byte) ──┐
│ Byte0 = (Type << 1) | (Len-Bit8)          │  V[0..Len-1]          │ CRC-16 (Big-Endian)│
│ Byte1 =  Len & 0xFF                       │                      │                   │
└──────────────────────────────────────────┴──────────────────────┴───────────────────┘

9.2 Antwortformat

Auf jedes Request-Frame antwortet der Server mit demselben Type. Die Payload beginnt mit einem Fehler-/Statusbyte, gefolgt von den Nutzdaten:

Response.Payload = [ ErrByte ] [ Daten … ]
CodeNameBedeutung
0x00ERR_OKErfolg
0x01ERR_CMDUnbekanntes/nicht unterstütztes Kommando
0x02ERR_ARGUngültiges Argument / Längenverletzung
0x03ERR_BUSYDienst nicht bereit / belegt (z. B. Service noch nicht registriert, GNSS aktiv)
0x10ERR_SIMSIM-Fehler
0x11ERR_NETMobilfunk nicht registriert
0x12ERR_CONNKeine Backend-/Datenverbindung
0xFFERR_INTERNALInterner Fehler

9.3 Kommandosatz

TypeKommandoRichtungAntwort-Nutzdaten (nach ErrByte)
0x00GET_PUBKEYHost → Modul32 Byte ED25519-Public-Key des Geräts
0x01GET_IMEIHost → ModulIMEI als String
0x02GET_ICCIDHost → ModulICCID als String
0x04SETHost → Modulkeine (Property setzen; Payload siehe §9.4)
0x05SYNCHost → Modulkeine (löst Backend-Sync des Kunden-Service aus)
0x06VERSIONHost → ModulFirmware-Version als String
0x07STATUSHost → Modulletzter Verbindungs-Statuscode (ErrByte)
0x08GEO_ENA bg77Host → Modulkeine (GNSS-Fix aktivieren/deaktivieren; auf eg912 → ERR_CMD)
0x09GEO_RPTModul → Host22-Byte-Geo-Report (Push, siehe §12)
0x0AGET_TIMEHost → ModulUnix-Zeit UTC, 4 Byte Big-Endian
0x0BSET_UUIDHost → Modulkeine (32-Bit-Präfix → Kunden-Service-UUID)
0x0DGET_CLAIMCODEHost → ModulClaim-Code (12-stelliger Base58-String)
0x0EGET_LTE_QUALITYHost → ModulSignalqualität 0..5 (1 Byte)
0x0FGET_LTE_CONNECTEDHost → ModulModem-Datenverbindung aktiv (1 Byte 0/1)
0x10GET_CLOUD_CONNECTEDHost → ModulBackend angebunden (1 Byte 0/1)
0x11FACTORY_RESETHost → Modulkeine Antwort — Modul löscht IMEI-/ICCID-/Script-Cache und rebootet (§15)

9.4 SET-Payload & Datentypen

Das SET-Kommando setzt eine Property auf dem Kunden-Service. Payload-Aufbau:

[0..1] id (Big-Endian)   [2] Flags (Bit4 = read-only)   [3] Typ   dann Wert
  Typ STRING/BIN:  [4..5] Länge (BE)   [6..] Bytes
  sonst (Skalar):  [4..]  Wert (feste Länge je Typ)
TypCodeLängeTypCodeLänge
INT320x014FLOAT0x094
INT160x022DATETIME0x0A4
INT80x031DOUBLE0x0B8 *
UINT320x044BIN0x0Cvariabel
UINT160x052UINT640x0D8 *
UINT80x061STRING0x0Evariabel
BOOL0x071INT640x0F8 *
UUID0x0816

* DOUBLE, UINT64 und INT64 werden im aktuellen Firmware-Stand angenommen, aber noch nicht verarbeitet (Antwort ERR_INTERNAL).

9.5 Diagnose-CLI

Über die serielle Diagnose-CLI (nur Debug/Service) stehen u. a. die Kommandos info, imei, iccid, pubkey, quality, connected, cloud_connected und exit zur Verfügung.

10. Erstinbetriebnahme, Identität & Claim-Code

10.1 Boot-Sequenz

  1. Power-on/Reboot → mainyuki_app_init(): Board-Bring-up, Status-LED-Thread, FS-Init.
  2. Connectivity-Supervisor (coldwave-yuki-core) startet das Modem; die IMEI wird gelesen, auf Plausibilität geprüft (15 Ziffern) und im KV-FS persistiert. Eine leere/unplausible IMEI wird nicht gespeichert; das Modul rebootet kontrolliert und versucht es erneut.
  3. Coldwave-Service (cwClient) wird registriert; Backend-Attach über LTE/DTLS gegen das Coldwave-Backend.
  4. Der UART-Protokoll-Server startet (und exportiert dabei den Geräte-Public-Key).
  5. app_main()-Loop: bedient den Host, treibt die Status-LEDs und den periodischen Sync.

10.2 Identität & Onboarding

11. Betrieb & Konfiguration

Im Normalbetrieb läuft das Modul autonom. Der app_main()-Loop (Periode 2 s):

Die vom Supervisor veröffentlichten Diagnose-Properties (read-only) umfassen:

PropertyIDTypBedeutung
LTE_RSRP0x1000int16Empfangspegel RSRP (dBm)
LTE_BW0x1010uint16LTE-Bandbreite
LTE_Q0x1011uint8Signalqualität
CELLINFO_MCC/MNC0x1001/0x1002uint16Mobile Country/Network Code
CELLINFO_LAC/CI0x1003/0x1004uint32Location Area Code / Cell-ID
GPIO0 / GPIO10x2000/0x2001boolService-Tag-Ausgänge

Sicherheitsrelevante Betriebsparameter (Backend-FQDN, APN, MNO, Modem-Variante, Modem-Baud) stammen ausschließlich aus Build-Konstanten und sind zur Laufzeit nicht über externe Eingaben veränderbar. Es gibt keine Werks-Default-Passwörter und keine lokale Konfigurationskonsole.

12. GNSS-Positionsbestimmung (nur bg77)

In der bg77-Variante wird das GNSS-Gerät (gnss0) geöffnet. Der Host aktiviert die Positionsbestimmung über GEO_ENA (Type 0x08). Das Modul pollt anschließend den GNSS-Empfänger und sendet bei gültigem Fix einen Geo-Report (GEO_RPT, Type 0x09) als Push an den Host — ein festes 22-Byte-Payload:

OffsetFeldFormat
0fix_typeuint8
1sats (Satellitenzahl)uint8
2..5ts_utc (Unix-Zeit)uint32 BE
6..9lat_e7 (Breite × 1e7)int32 BE
10..13lon_e7 (Länge × 1e7)int32 BE
14..17alt_cm (Höhe in cm)int32 BE
18..21hdop_centi (HDOP × 100)uint32 BE

Der GNSS-Empfänger ist reiner Empfänger (keine Sendeeigenschaft). Während aktiver GNSS-Fixe signalisiert die grüne LED das GPS-Muster (§14). Auf der eg912-Variante ist der GNSS-Pfad nicht verlinkt; GEO_ENA beantwortet der Server mit ERR_CMD.

13. Firmware-Updates (OTA) & Secure Boot

  1. Das Backend triggert ein Update über den DTLS-authentifizierten Property-Kanal.
  2. Das Image wird geladen und im OTA-Slot abgelegt.
  3. Die kryptographische Signatur wird geprüft (ECDSA-P256 / SHA-256).
  4. Bei gültiger Signatur führt der MCUboot-artige coldwave-os-Bootloader den Swap durch und startet neu; bei ungültiger/fehlender Signatur wird das Update verworfen und in das vorherige gültige Image zurückgefallen.
Integrität und Authentizität stammen aus der Image-Signatur, nicht aus dem Transport. Die Versions-Monotonie (Anti-Rollback) speist sich aus APP_VERSION_STR (nur ein echter SemVer-Git-Tag wird als OTA-Version übernommen). Die Aktivierung von Secure Boot / Anti-Rollback und die Bereitstellung des produktiven OTA-Signaturschlüssels sind Produktions-Vorbedingungen des Integrators (siehe §16).

14. Status-LEDs & NW_ERR-Signal

Das Modul treibt eine grüne und eine rote LED. Der Status-Thread arbeitet mit 100-ms-Takt; die Muster ergeben sich aus dem vom Hauptloop gesetzten Zustand:

LED-MusterZustandBedeutung
grün, dauerhaftNORMALOnline — Modem verbunden und Backend angebunden
grün, schnelles Blinken (~2 Hz)CONNECTINGModem verbunden, Backend-Anmeldung läuft
grün, langsames Blinken (~0,5 Hz)SYNCEin Backend-Sync wurde soeben ausgeführt
grün, Puls-Muster (3 kurze Pulse je ~1,2 s)GPS bg77GNSS-Positionsbestimmung aktiv
rot, 2× Blinken + PauseNET_ERRORModem registriert, aber keine Datenverbindung
rot, 3× BlinkenMOBILE_ERRORModem nicht registriert / kein Mobilfunknetz
rot, 4× BlinkenSIM_ERRORSIM-Fehler

Zusätzlich signalisiert der NW_ERR-Ausgangspin den Backend-Link-Zustand hardwareseitig: High bei Mobilfunk-/Backend-Fehler, Low sobald das Backend angebunden ist. Der Host-MCU kann dieses Signal ohne UART-Abfrage auswerten.

15. Reset & Factory-Reset

Das YMOD hat keinen physischen Reset-Taster. Zurücksetzen erfolgt über den Host:

Nicht behebbare Bring-up-Fehler münden in eine Warteschleife, bis der Hardware-Watchdog einen Reboot auslöst. Die Aktivierung des Hardware-Watchdogs im Release-Build ist eine Integrations-Vorbedingung: [zu bestätigen].

16. Cybersicherheit (EN 18031-1) — Hinweise für Integratoren/Betreiber

16.1 Was das Modul selbst tut

16.2 Verantwortung des Integrators / Betreibers

16.3 Sicherheits-Support-Zeitraum

ImagineOn stellt für dieses Produkt sicherheitsrelevante Firmware-Updates über einen definierten Support-Zeitraum bereit und folgt einem koordinierten Offenlegungsprozess (CVD) nach IEC 62443-4-1 (§23). Die kalendarische Dauer des Support-Zeitraums für das YMOD-Endprodukt: [zu bestätigen].

17. Mobilfunk-Konnektivität & Recovery

17.1 Netzprofil

17.2 Recovery-Ladder

Der Connectivity-Supervisor (coldwave-yuki-core) überwacht die Verbindung (Periode 5 s) und durchläuft bei Verlust eine deterministische Recovery-Ladder: Reconnect → Modem-Reset → Reboot. Der Reboot greift erst nach maximal 3 erfolglosen Resets (max_resets_before_reboot=3) und einer Mindestlaufzeit von 30 min. Rund 5 fehlgeschlagene Syncs ohne Backend-Round-Trip werten als „attached-but-dead" und lösen ebenfalls einen Modem-Reset aus. Eine Raten-Obergrenze (ltemq_rate_cap_kbit_s) begrenzt den Durchsatz; ein monatliches Datenbudget gibt es nicht.

18. Wartung

Das Modul ist wartungsfrei. Es enthält keine RTC-Pufferbatterie und keine vom Anwender wartbaren Teile (die Uhrzeit kommt aus NTP). Endprodukt-seitige Pflege (Reinigung, Prüfung des Antennenanschlusses) obliegt dem Betreiber gemäß der Dokumentation des Endprodukts.

19. Funkparameter

ParameterVariante eg912 DefaultVariante bg77
FunkmodulQuectel EG912 (vorzertifiziert)Quectel BG77 (vorzertifiziert)
FunkdienstLTE Cat-1LTE-M (Cat-M1) / NB-IoT
GNSSintegriert, Empfangs-only
Default-Band (Code)LTE_B8 (900 MHz); unterstützte Bänder je Modul-Datenblatt
Sendeleistung / Modulationdurch das jeweilige Quectel-Modulzertifikat spezifiziert (kein eigenes Funkdesign)
Antenne50 Ω, Layout gemäß Quectel-RF-Application-Note; bg77 zusätzlich GNSS-Antennenpfad

Der Integrationsnachweis (RED Art. 3(2)) stützt sich für beide Module auf das jeweilige Quectel-CE-Zertifikat (GCF/PTCRB) und geräteseitige Prüfungen nach EN 301 489-1/-52 und EN 301 908-1/-13 auf Endprodukt-Ebene.

20. Technische Daten (Übersicht)

MCU / PlattformSilicon Labs EFR32MG26 (ARM Cortex-M33), Gecko Security Element (HW-TRNG, PSA-Crypto)
Betriebssystemcoldwave-os 2.2.0 (FreeRTOS, lwIP, mbedTLS/PSA, OTA, KV-FS, MCUboot-Bootloader)
MobilfunkQuectel EG912 (LTE Cat-1) oder BG77 (LTE-M/NB-IoT) — variantenabhängig
GNSSnur bg77, Empfangs-only
Host-SchnittstelleUART (TLV + CRC-16/CCITT-FALSE), max. TLV 511 Byte; GPIO0/1, SYNC, SLEEP, NW_ERR
Sicherheit (SW)Secure Boot, signierte OTA (ECDSA-P256/SHA-256), DTLS, PSA-Keystore, ED25519-Geräteschlüssel
VersorgungSELV/PELV über Trägerplatine — elektrische Kenndaten: [zu bestätigen]
Abmessungen / Footprint[zu bestätigen]
Umgebungsbedingungen[zu bestätigen]

21. Troubleshooting

SymptomMögliche UrsacheMaßnahme
NW_ERR bleibt High / rote LED blinkt 3×Modem nicht registriert, kein NetzAntennensitz und Empfang prüfen; SIM/Netzverfügbarkeit prüfen.
Rote LED blinkt 2×Modem registriert, aber keine Backend-/DatenverbindungAPN/Netzstatus prüfen; auf Recovery-Ladder warten (§17.2).
Rote LED blinkt 4×SIM-FehlerSIM-Sitz/-Kontakte und -Provisionierung prüfen.
UART-Antworten mit ERR_ARGFrame-Länge/CRC oder SET-Payload fehlerhaftHeader/Längenfeld, CRC-16/CCITT-FALSE und die feste Typ-Länge prüfen (§9).
UART-Antwort ERR_BUSY auf SYNC/SETKunden-Service noch nicht registriert oder GNSS aktivErst nach Backend-Attach senden; UUID per SET_UUID setzen.
GEO_ENA liefert ERR_CMDeg912-Variante ohne GNSSGNSS nur auf bg77; Variante prüfen.
Modul rebootet zyklisch beim Bootkeine plausible IMEI vom ModemModem-/SIM-Verdrahtung und Modem-Init prüfen.

22. Außerbetriebnahme & Entsorgung

  1. Versorgung der Trägerplatine abschalten.
  2. Gerät im Coldwave-Portal ggf. als außer Betrieb markieren.
  3. Modul bzw. Endprodukt fachgerecht entsorgen.
Entsorgung (WEEE 2012/19/EU): Elektro-/Elektronikgeräte dürfen nicht über den Hausmüll entsorgt werden. Bitte über die kommunalen Sammelstellen oder den Hersteller-Rücknahmeweg entsorgen.
WEEE-Reg.-Nr. (DE): DE 54689668

23. Support, Schwachstellen-Meldung, Sicherheits-Support

AnliegenKontakt
Sicherheits-/Schwachstellen-Meldung (CVD/PSIRT)security@coldwave.io
Konformitätsanfragen / Marktüberwachungcompliance@imagineon.de
Allgemeiner Support / Integration[zu bestätigen] · www.imagineon.de

Bitte keine öffentlichen GitHub-Issues für Schwachstellen. Bei der Meldung Firmware-Version (Release-Tag/Commit) und Modem-Variante (eg912/bg77) angeben; für UART-Protokoll-Themen ist eine minimale Byte-Sequenz ideal. Empfangsbestätigung binnen 2 Arbeitstagen; Triage binnen 5 Arbeitstagen; Fix für Critical/High (CVSS ≥ 7) binnen 90 Tagen, für Medium/Low binnen 180 Tagen (gebündelt ins nächste Minor-Release). Koordinierte Offenlegung nach Verfügbarkeit des Fixes und einem angemessenen Rollout-Fenster (typ. 30 Tage). Details: SECURITY.md.

24. Software-Komponenten & Lizenzen

KomponenteVersionRolle
coldwave-os (FU-Image)2.2.0RTOS, Netzwerk, DTLS, OTA, FS, PSA
coldwave-os (Bootloader)2.2.0MCUboot-artige Image-Verifikation
libflake(über coldwave-os)Property-Layer, IPC
coldwave-yuki-core1.0.0Connectivity-Supervisor + Recovery + LTE-Quality
UART-Protokoll-Server(Produkt)TLV + CRC-16/CCITT-FALSE + Handler — ImagineOn-authored

Der YMOD-Applikationscode (src/) ist vollständig ImagineOn-authored; es gibt keinen vendored Drittanbieter-Quellcode im Image außer dem coldwave-os-SDK. Die vollständige SBOM (CycloneDX) liegt unter firmware/compliance/sbom/ymod-v1.0.0.cdx.json. Vertrieb durch die ImagineOn GmbH unter den ImagineOn-Softwarelizenzbedingungen (imagineon.de/de/info/licensing-terms) — keine Open-Source-Lizenz; Weiterverbreitung nur mit schriftlicher Vereinbarung.

25. Glossar

APNAccess Point Name — Einwahlpunkt im Mobilfunknetz
Claim-Codekryptographisch abgeleiteter Onboarding-Code (Base58)
CRC-16/CCITT-FALSEPrüfsumme (Poly 0x1021, Init 0xFFFF) über die UART-Frames
DTLSDatagram TLS — verschlüsselte UDP-Übertragung
ED25519Edwards-Curve-Signaturverfahren des Geräteschlüssels
GNSSSatellitennavigation (nur bg77, Empfangs-only)
ICCIDSIM-Kennung
IMEIeindeutige Modem-/Geräte-Kennung (15 Ziffern)
LTE Cat-1 / LTE-M / NB-IoTMobilfunk-Datentechniken der Modem-Varianten
OTAOver-the-Air-Firmware-Update
PSA CryptoPlatform Security Architecture — Schlüsselablage/Krypto-API
REDRadio Equipment Directive 2014/53/EU
RSRPReference Signal Received Power — LTE-Empfangspegel
TLVType-Length-Value — Rahmenformat des UART-Protokolls
YUKI_MODEMBuild-Flag zur Wahl der Modem-Variante (eg912/bg77)

26. Änderungshistorie

VersionDatumÄnderung
1.02026-07-13Erstausgabe des Integrations- & Betriebshandbuchs (Firmware 1.0.0)

© 2026 ImagineOn GmbH. Alle Rechte vorbehalten. Dieses Handbuch darf ohne ausdrückliche Genehmigung der ImagineOn GmbH nicht vervielfältigt oder Dritten zugänglich gemacht werden, ausgenommen die Weitergabe im Rahmen der Lieferkette des Produkts Coldwave Yuki Module (YMOD).

Coldwave Yuki Module — User Manual

Translation note. This English version is a translation of the German original. In case of any discrepancy or ambiguity, the German version prevails as the legally authoritative text.
Product
Coldwave Yuki Module
Model
YMOD — one source tree, two modem variants via the build flag YUKI_MODEM: eg912 (default) / bg77
Product class
Cellular connectivity module (embedded component for a host MCU)
Manufacturer
ImagineOn GmbH, Neusser Str. 27–29, 50670 Cologne, Germany
Firmware
1.0.0
Platform
Silicon Labs EFR32MG26 (ARM Cortex-M33), coldwave-os 2.2.0
Service UUID
00000000-0000-1000-8002-006D0099AB53
Document version
1.0 — 2026-07-13
Languages
German (original), English, French
How to read this document. The Coldwave Yuki Module (YMOD) is a radio module for embedding on a customer-side carrier board. This manual is intended for integrators (hardware/firmware developers of the carrier board or host MCU) and for plant operators. It describes the logical host interface (UART protocol), the cellular/backend connectivity, the status signalling, the security architecture and the regulatory information. Mechanical, electrical and layout-related characteristics of the module are given in the accompanying hardware integration datasheet; where this manual cannot derive them from the firmware build, they are marked [to be confirmed].
Contents
  1. About this document
  2. Manufacturer, CE, simplified EU declaration of conformity
  3. Intended use
  4. Module identification & variants
  5. Safety
  6. Module overview & architecture
  7. Host interface: signals & assignment
  8. Integration (installation, antenna, supply)
  9. UART host protocol (TLV + CRC-16)
  10. Initial commissioning, identity & claim code
  11. Operation & configuration
  12. GNSS positioning (bg77 only)
  13. Firmware updates (OTA) & Secure Boot
  14. Status LEDs & NW_ERR signal
  15. Reset & factory reset
  16. Cybersecurity (EN 18031-1) — notes for integrators/operators
  17. Cellular connectivity & recovery
  18. Maintenance
  19. Radio parameters
  20. Technical data (overview)
  21. Troubleshooting
  22. Decommissioning & disposal
  23. Support, vulnerability reporting, security support
  24. Software components & licenses
  25. Glossary
  26. Revision history

1. About this document

This manual describes the integration and operation of the Coldwave Yuki Module (YMOD) from ImagineOn GmbH — a cellular connectivity module that connects a carrier board or host MCU to the Coldwave backend over a local UART protocol. It is intended for integrators (development of the carrier board and the host firmware) and plant operators.

The YMOD is an embedded component. Certain conformity- and security-relevant steps (RF layout, antenna path, key provisioning, Secure Boot / anti-rollback configuration, watchdog activation, end-product certification) are the responsibility of the integrator or the end-product manufacturer — see §16 and the module integration evidence in the technical documentation.

2. Manufacturer, CE, simplified EU declaration of conformity

2.1 Manufacturer

ImagineOn GmbH
Neusser Str. 27–29
50670 Cologne, Germany
Web: https://www.imagineon.de
Compliance: compliance@imagineon.de · PSIRT: security@coldwave.io

2.2 CE marking & applied legislation

The conformity assessment is carried out under Module A (internal production control). Applied EU legal acts:

2.3 Simplified EU declaration of conformity (Art. 10 (9) RED)

Hereby, ImagineOn GmbH declares that the radio equipment type Coldwave Yuki Module (YMOD) (variants eg912 / bg77) is in compliance with Directive 2014/53/EU. The full text of the EU declaration of conformity (No. YMOD-DoC-1.0.0, issued on 2026-06-07, source commit 7247ed2b53) is part of the technical documentation and available from the manufacturer (compliance@imagineon.de). Online source: [to be confirmed].

2.4 Applied harmonised standards

AreaStandard
SafetyEN 62368-1:2020+A11:2020
RF exposureEN 50665:2017
EMC (radio)EN 301 489-1 V2.2.3, EN 301 489-17 V3.2.4, EN 301 489-52 V1.2.1
Radio (cellular)EN 301 908-1 V15.2.1, EN 301 908-13 V13.2.1
CybersecurityEN 18031-1:2024
Forward-looking (CRA)ETSI EN 303 645 V3.1.3

Note: The EFR32MG26 SoC contains a BLE / 802.15.4 radio component which is not linked in by firmware in either YMOD variant (no stack in the build). It is a platform-level provision for future variants. The frequency, modulation and transmit power of the cellular part are fully specified by the respective fitted, pre-certified Quectel module (EG912 or BG77); YMOD contains no radio design of its own.

3. Intended use

The YMOD is a cellular connectivity module for embedding on a customer-side carrier board. On behalf of a host MCU it handles the cellular connection (LTE), the DTLS-secured backend communication (telemetry/property sync, remote configuration, OTA triggering), the device identity and — in the bg77 variant — GNSS positioning, and provides these services via a TLV-based UART protocol.

Typical use: as a fitted radio module in industrial/commercial environments. Power is supplied via the carrier board (SELV/PELV).

Use is not intended for the following in particular:

YMOD carries no Modbus/BACnet field-bus gateway, no scripting/script VM, no supercaps/power-fail buffering, no battery-backed RTC and no data budget. These functions, present in the sibling yukiblock products, have been removed for YMOD without replacement.

4. Module identification & variants

4.1 Firmware identity

FieldValue
Product ID (product_id)YMOD
HW ID (hw_id)EFR32MG26
Firmware version1.0.0 (build constant APP_VERSION_STR, from the Git tag at release)
Service UUID00000000-0000-1000-8002-006D0099AB53 (YMOD_SRV_UUID)
Customer service UUID00000001-0000-1000-8002-006D0099AB53 (CUST_SRV_UUID) — configurable via UART SET_UUID
Device IDIMEI (15 digits) of the cellular module

4.2 Modem variants (one source tree, build flag YUKI_MODEM)

Featureeg912 Defaultbg77
Cellular moduleQuectel EG912Quectel BG77
Radio technologyLTE Cat-1LTE-M / NB-IoT
GNSSnoyes (integrated, receive-only)
Modem host-link baud (module-internal, module↔modem)2 100 000 baud115 200 baud
LTE quality modelCat-1 (Tau 20 min)LTE-M (Tau 1 min)
Build definitionYUKI_MODEM_EG912=1YUKI_MODEM_BG77=1, YUKI_MODEM_WITH_GNSS=1

Both variants are functionally identical apart from the modem, the GNSS path and the LTE quality model. The modem host-link baud refers to the module-internal link between YMOD and the Quectel modem — not the baud rate of the host UART interface to the customer MCU (see §7/§9).

4.3 Marking

The technical device ID is the IMEI; it is read from the modem on first boot, plausibility-checked and persisted. HW revision, module labelling and serial-number assignment are defined in the hardware dataset: [to be confirmed].

5. Safety

Integration and commissioning by qualified personnel only. Switch off the supply before working on the carrier board. Observe ESD precautions when handling the module.

5.1 Safety notes

5.2 RF exposure

The transmit power of the cellular part is determined by the respective fitted Quectel module. The RF-exposure assessment per EN 50665 is performed at the end-product level by the integrator, including the determination of the required minimum distance. The GNSS receiver of the bg77 variant is receive-only (no transmit capability).

6. Module overview & architecture

The YMOD runs as the sole software on an EFR32MG26 (Cortex-M33) on coldwave-os 2.2.0. The firmware is deliberately lean:

┌────────────────────────────────────────────────────────────────┐
│  Application (firmware/src/)                                   │
│  ├─ main.cpp        identity (product_id="YMOD",               │
│  │                  hw_id="EFR32MG26"), modem init blob        │
│  ├─ app.cpp         yuki_app_init(): board + connectivity      │
│  │                  supervisor + Coldwave service + backend    │
│  ├─ app/app_main.cpp UART server, GNSS (bg77 only),            │
│  │                   GPIO0/1 tags, SYNC, status LEDs, sync loop│
│  ├─ app/app_status.cpp  status-LED state machine               │
│  ├─ app/mcc_timezone.c  MCC → POSIX TZ                         │
│  ├─ uart_protocol/  TLV server + CRC-16 + handlers + IO        │
│  └─ cli/cli.c       serial diagnostic CLI                      │
├────────────────────────────────────────────────────────────────┤
│  coldwave-yuki-core 1.0.0 (in-house, pinned):                  │
│  connectivity supervisor + recovery + LTE quality.             │
│  power-fail / budget compiled out (YUKI_CORE_WITH_*=OFF).      │
├────────────────────────────────────────────────────────────────┤
│  coldwave-os 2.2.0: kernel (FreeRTOS), lwIP, mbedTLS/PSA,      │
│  DTLS, OTA, KV-FS, AT modem driver, MCUboot bootloader         │
└────────────────────────────────────────────────────────────────┘

The primary local attack surface is the UART protocol server (§9). The backend connectivity (DTLS/LTE), OTA, the KV-FS and the PSA cryptography are delegated to coldwave-os; the connectivity and recovery logic as well as the LTE quality model come from coldwave-yuki-core.

7. Host interface: signals & assignment

The YMOD provides the host MCU with the following logical signals. The physical mapping to the module footprint (pin/pad numbers) is defined in the hardware integration datasheet: [to be confirmed].

SignalDirectionFunction
Host UART (uart1): TXD, RXD, RTS, CTSbidirectionalLocal TLV protocol to the host MCU (§9). 8-N-1; HW flow-control lines (RTS/CTS) present. Host UART baud rate: [to be confirmed] (no build constant in the audited firmware build; to be defined during integration).
GPIO0 / GPIO1Output (module → carrier)Service tags: output pins switchable via the backend or via UART (SET on property 0x2000/0x2001, type BOOL).
SYNCInput (carrier → module)Interrupt input; a rising edge triggers an immediate event-triggered backend sync.
SLEEPInput (pull-up)Low requests low-power/sleep handling (reserve path).
NW_ERROutput (module → carrier)Hardware signal "backend link disrupted": high on cellular/backend error, low as soon as the backend is attached.
LED_GREEN / LED_REDOutputStatus-LED drive (§14).
Cellular antenna portRF50 Ω, per Quectel RF specifications.
GNSS antenna port bg77RF (Rx)bg77 variant only; antenna path per the BG77 GNSS Application Note.
SIM interfaceSIM/eSIM on carrier/module; form factor and ESD protection: [to be confirmed]. The network profile (APN/MNO) is a firmware build constant.
Supply / GNDSELV/PELV from the carrier board.
SWD/JTAG + SEGGER RTTDebugReachable only physically via JTAG/SWD; locked by the Gecko Security Element debug lock in the delivered state.

Reserved/platform-side pins: a BLE input and a POWER-GOOD input are configured in the board bring-up but are not used productively in the current feature set.

8. Integration (installation, antenna, supply)

9. UART host protocol (TLV + CRC-16)

The UART protocol server (src/uart_protocol/yuki_module_server.c) is the module's local interface to the host MCU and at the same time its primary attack surface. It is protected by strict frame, length and CRC validation (fuzz-tested). No authentication takes place — the link is considered assembly-/module-internal (trusted host link).

9.1 Frame format

┌──────────── Header (2 bytes) ────────────┬── Payload (0..511) ──┬── CRC (2 bytes) ───┐
│ Byte0 = (Type << 1) | (Len bit8)         │  V[0..Len-1]         │ CRC-16 (big-endian)│
│ Byte1 =  Len & 0xFF                      │                      │                    │
└──────────────────────────────────────────┴──────────────────────┴────────────────────┘

9.2 Response format

The server replies to every request frame with the same Type. The payload starts with an error/status byte, followed by the payload data:

Response.Payload = [ ErrByte ] [ data … ]
CodeNameMeaning
0x00ERR_OKSuccess
0x01ERR_CMDUnknown/unsupported command
0x02ERR_ARGInvalid argument / length violation
0x03ERR_BUSYService not ready / busy (e.g. service not yet registered, GNSS active)
0x10ERR_SIMSIM error
0x11ERR_NETCellular not registered
0x12ERR_CONNNo backend/data connection
0xFFERR_INTERNALInternal error

9.3 Command set

TypeCommandDirectionResponse payload (after ErrByte)
0x00GET_PUBKEYHost → module32-byte ED25519 public key of the device
0x01GET_IMEIHost → moduleIMEI as a string
0x02GET_ICCIDHost → moduleICCID as a string
0x04SETHost → modulenone (set property; payload see §9.4)
0x05SYNCHost → modulenone (triggers a backend sync of the customer service)
0x06VERSIONHost → modulefirmware version as a string
0x07STATUSHost → modulelast connection status code (ErrByte)
0x08GEO_ENA bg77Host → modulenone (enable/disable GNSS fix; on eg912 → ERR_CMD)
0x09GEO_RPTModule → host22-byte geo report (push, see §12)
0x0AGET_TIMEHost → moduleUnix time UTC, 4 bytes big-endian
0x0BSET_UUIDHost → modulenone (32-bit prefix → customer service UUID)
0x0DGET_CLAIMCODEHost → moduleclaim code (12-character Base58 string)
0x0EGET_LTE_QUALITYHost → modulesignal quality 0..5 (1 byte)
0x0FGET_LTE_CONNECTEDHost → modulemodem data connection active (1 byte 0/1)
0x10GET_CLOUD_CONNECTEDHost → modulebackend attached (1 byte 0/1)
0x11FACTORY_RESETHost → moduleno response — the module clears the IMEI/ICCID/script cache and reboots (§15)

9.4 SET payload & data types

The SET command sets a property on the customer service. Payload structure:

[0..1] id (big-endian)   [2] flags (bit4 = read-only)   [3] type   then value
  type STRING/BIN:  [4..5] length (BE)   [6..] bytes
  else (scalar):  [4..]  value (fixed length per type)
TypeCodeLengthTypeCodeLength
INT320x014FLOAT0x094
INT160x022DATETIME0x0A4
INT80x031DOUBLE0x0B8 *
UINT320x044BIN0x0Cvariable
UINT160x052UINT640x0D8 *
UINT80x061STRING0x0Evariable
BOOL0x071INT640x0F8 *
UUID0x0816

* DOUBLE, UINT64 and INT64 are accepted in the current firmware build but not yet processed (response ERR_INTERNAL).

9.5 Diagnostic CLI

Via the serial diagnostic CLI (debug/service only), the commands info, imei, iccid, pubkey, quality, connected, cloud_connected and exit, among others, are available.

10. Initial commissioning, identity & claim code

10.1 Boot sequence

  1. Power-on/reboot → mainyuki_app_init(): board bring-up, status-LED thread, FS init.
  2. The connectivity supervisor (coldwave-yuki-core) starts the modem; the IMEI is read, checked for plausibility (15 digits) and persisted in the KV-FS. An empty/implausible IMEI is not stored; the module reboots in a controlled manner and tries again.
  3. The Coldwave service (cwClient) is registered; backend attach via LTE/DTLS against the Coldwave backend.
  4. The UART protocol server starts (exporting the device public key in the process).
  5. app_main() loop: serves the host, drives the status LEDs and the periodic sync.

10.2 Identity & onboarding

11. Operation & configuration

In normal operation the module runs autonomously. The app_main() loop (period 2 s):

The diagnostic properties published by the supervisor (read-only) include:

PropertyIDTypeMeaning
LTE_RSRP0x1000int16Receive level RSRP (dBm)
LTE_BW0x1010uint16LTE bandwidth
LTE_Q0x1011uint8Signal quality
CELLINFO_MCC/MNC0x1001/0x1002uint16Mobile Country/Network Code
CELLINFO_LAC/CI0x1003/0x1004uint32Location Area Code / Cell ID
GPIO0 / GPIO10x2000/0x2001boolService-tag outputs

Security-relevant operating parameters (backend FQDN, APN, MNO, modem variant, modem baud) come exclusively from build constants and cannot be altered at runtime via external inputs. There are no factory default passwords and no local configuration console.

12. GNSS positioning (bg77 only)

In the bg77 variant the GNSS device (gnss0) is opened. The host enables positioning via GEO_ENA (type 0x08). The module then polls the GNSS receiver and, on a valid fix, sends a geo report (GEO_RPT, type 0x09) as a push to the host — a fixed 22-byte payload:

OffsetFieldFormat
0fix_typeuint8
1sats (satellite count)uint8
2..5ts_utc (Unix time)uint32 BE
6..9lat_e7 (latitude × 1e7)int32 BE
10..13lon_e7 (longitude × 1e7)int32 BE
14..17alt_cm (altitude in cm)int32 BE
18..21hdop_centi (HDOP × 100)uint32 BE

The GNSS receiver is receive-only (no transmit capability). While GNSS fixes are active, the green LED signals the GPS pattern (§14). On the eg912 variant the GNSS path is not linked in; the server answers GEO_ENA with ERR_CMD.

13. Firmware updates (OTA) & Secure Boot

  1. The backend triggers an update via the DTLS-authenticated property channel.
  2. The image is downloaded and placed in the OTA slot.
  3. The cryptographic signature is verified (ECDSA-P256 / SHA-256).
  4. On a valid signature, the MCUboot-like coldwave-os bootloader performs the swap and restarts; on an invalid/missing signature the update is discarded and the previous valid image is retained.
Integrity and authenticity come from the image signature, not from the transport. Version monotonicity (anti-rollback) is fed from APP_VERSION_STR (only a genuine SemVer Git tag is adopted as the OTA version). The activation of Secure Boot / anti-rollback and the provisioning of the production OTA signing key are production preconditions on the integrator (see §16).

14. Status LEDs & NW_ERR signal

The module drives a green and a red LED. The status thread runs on a 100 ms tick; the patterns follow the state set by the main loop:

LED patternStateMeaning
green, solidNORMALOnline — modem connected and backend attached
green, fast blink (~2 Hz)CONNECTINGModem connected, backend registration in progress
green, slow blink (~0.5 Hz)SYNCA backend sync has just been performed
green, pulse pattern (3 short pulses every ~1.2 s)GPS bg77GNSS positioning active
red, 2× blink + pauseNET_ERRORModem registered but no data connection
red, 3× blinkMOBILE_ERRORModem not registered / no cellular network
red, 4× blinkSIM_ERRORSIM error

In addition, the NW_ERR output pin signals the backend-link state in hardware: high on cellular/backend error, low as soon as the backend is attached. The host MCU can evaluate this signal without a UART query.

15. Reset & factory reset

The YMOD has no physical reset button. Resetting is performed via the host:

Non-recoverable bring-up errors end in a wait loop until the hardware watchdog triggers a reboot. Enabling the hardware watchdog in the release build is an integration precondition: [to be confirmed].

16. Cybersecurity (EN 18031-1) — notes for integrators/operators

16.1 What the module does itself

16.2 Responsibility of the integrator / operator

16.3 Security-update period

ImagineOn provides security-relevant firmware updates for this product over a defined support period and follows a coordinated disclosure process (CVD) per IEC 62443-4-1 (§23). The calendar duration of the support period for the YMOD end product: [to be confirmed].

17. Cellular connectivity & recovery

17.1 Network profile

17.2 Recovery ladder

The connectivity supervisor (coldwave-yuki-core) monitors the connection (period 5 s) and, on loss, runs through a deterministic recovery ladder: reconnect → modem reset → reboot. The reboot only takes effect after at most 3 unsuccessful resets (max_resets_before_reboot=3) and a minimum uptime of 30 min. Around 5 failed syncs without a backend round trip count as "attached-but-dead" and likewise trigger a modem reset. A rate cap (ltemq_rate_cap_kbit_s) limits throughput; there is no monthly data budget.

18. Maintenance

The module is maintenance-free. It contains no RTC backup battery and no user-serviceable parts (the time comes from NTP). End-product-side care (cleaning, checking the antenna connection) is the operator's responsibility in accordance with the end-product documentation.

19. Radio parameters

ParameterVariant eg912 DefaultVariant bg77
Radio moduleQuectel EG912 (pre-certified)Quectel BG77 (pre-certified)
Radio serviceLTE Cat-1LTE-M (Cat-M1) / NB-IoT
GNSSintegrated, receive-only
Default band (code)LTE_B8 (900 MHz); supported bands per module datasheet
Transmit power / modulationspecified by the respective Quectel module certificate (no radio design of its own)
Antenna50 Ω, layout per Quectel RF Application Note; bg77 additionally a GNSS antenna path

The integration evidence (RED Art. 3(2)) relies for both modules on the respective Quectel CE certificate (GCF/PTCRB) and device-side tests per EN 301 489-1/-52 and EN 301 908-1/-13 at the end-product level.

20. Technical data (overview)

MCU / platformSilicon Labs EFR32MG26 (ARM Cortex-M33), Gecko Security Element (HW TRNG, PSA Crypto)
Operating systemcoldwave-os 2.2.0 (FreeRTOS, lwIP, mbedTLS/PSA, OTA, KV-FS, MCUboot bootloader)
CellularQuectel EG912 (LTE Cat-1) or BG77 (LTE-M/NB-IoT) — variant-dependent
GNSSbg77 only, receive-only
Host interfaceUART (TLV + CRC-16/CCITT-FALSE), max. TLV 511 bytes; GPIO0/1, SYNC, SLEEP, NW_ERR
Security (SW)Secure Boot, signed OTA (ECDSA-P256/SHA-256), DTLS, PSA keystore, ED25519 device key
SupplySELV/PELV via carrier board — electrical characteristics: [to be confirmed]
Dimensions / footprint[to be confirmed]
Environmental conditions[to be confirmed]

21. Troubleshooting

SymptomPossible causeAction
NW_ERR stays high / red LED blinks 3×Modem not registered, no networkCheck antenna seating and reception; check SIM/network availability.
Red LED blinks 2×Modem registered but no backend/data connectionCheck APN/network status; wait for the recovery ladder (§17.2).
Red LED blinks 4×SIM errorCheck SIM seating/contacts and provisioning.
UART replies with ERR_ARGFrame length/CRC or SET payload faultyCheck the header/length field, CRC-16/CCITT-FALSE and the fixed type length (§9).
UART reply ERR_BUSY on SYNC/SETCustomer service not yet registered or GNSS activeSend only after backend attach; set the UUID via SET_UUID.
GEO_ENA returns ERR_CMDeg912 variant without GNSSGNSS only on bg77; check the variant.
Module reboots cyclically at bootno plausible IMEI from the modemCheck the modem/SIM wiring and modem init.

22. Decommissioning & disposal

  1. Switch off the supply to the carrier board.
  2. If applicable, mark the device as decommissioned in the Coldwave portal.
  3. Dispose of the module or end product properly.
Disposal (WEEE 2012/19/EU): electrical and electronic equipment must not be disposed of with household waste. Please dispose of it via the municipal collection points or the manufacturer's take-back scheme.
WEEE reg. no. (DE): DE 54689668

23. Support, vulnerability reporting, security support

MatterContact
Security / vulnerability report (CVD/PSIRT)security@coldwave.io
Conformity enquiries / market surveillancecompliance@imagineon.de
General support / integration[to be confirmed] · www.imagineon.de

Please do not use public GitHub issues for vulnerabilities. When reporting, state the firmware version (release tag/commit) and the modem variant (eg912/bg77); for UART protocol matters a minimal byte sequence is ideal. Acknowledgement within 2 business days; triage within 5 business days; fix for Critical/High (CVSS ≥ 7) within 90 days, for Medium/Low within 180 days (bundled into the next minor release). Coordinated disclosure after the fix is available and an appropriate rollout window (typ. 30 days). Details: SECURITY.md.

24. Software components & licenses

ComponentVersionRole
coldwave-os (firmware image)2.2.0RTOS, networking, DTLS, OTA, FS, PSA
coldwave-os (bootloader)2.2.0MCUboot-like image verification
libflake(via coldwave-os)Property layer, IPC
coldwave-yuki-core1.0.0Connectivity supervisor + recovery + LTE quality
UART protocol server(product)TLV + CRC-16/CCITT-FALSE + handlers — ImagineOn-authored

The YMOD application code (src/) is entirely ImagineOn-authored; there is no vendored third-party source code in the image apart from the coldwave-os SDK. The full SBOM (CycloneDX) is located at firmware/compliance/sbom/ymod-v1.0.0.cdx.json. Distributed by ImagineOn GmbH under the ImagineOn software license terms (imagineon.de/de/info/licensing-terms) — not an open-source license; redistribution only by written agreement.

25. Glossary

APNAccess Point Name — entry point in the cellular network
Claim codecryptographically derived onboarding code (Base58)
CRC-16/CCITT-FALSEchecksum (poly 0x1021, init 0xFFFF) over the UART frames
DTLSDatagram TLS — encrypted UDP transport
ED25519Edwards-curve signature scheme of the device key
GNSSsatellite navigation (bg77 only, receive-only)
ICCIDSIM identifier
IMEIunique modem/device identifier (15 digits)
LTE Cat-1 / LTE-M / NB-IoTcellular data technologies of the modem variants
OTAOver-the-Air firmware update
PSA CryptoPlatform Security Architecture — key storage/crypto API
REDRadio Equipment Directive 2014/53/EU
RSRPReference Signal Received Power — LTE receive level
TLVType-Length-Value — frame format of the UART protocol
YUKI_MODEMbuild flag for selecting the modem variant (eg912/bg77)

26. Revision history

VersionDateChange
1.02026-07-13First issue of the integration & operating manual (firmware 1.0.0)

© 2026 ImagineOn GmbH. All rights reserved. This manual may not be reproduced or made available to third parties without the express consent of ImagineOn GmbH, except for distribution within the supply chain of the Coldwave Yuki Module (YMOD) product.

Coldwave Yuki Module — Manuel d'utilisation

Note de traduction. Cette version française est une traduction de l'original allemand. En cas de divergence ou d'ambiguïté, la version allemande fait foi en tant que texte juridiquement contraignant.
Produit
Coldwave Yuki Module
Modèle
YMOD — un arbre source unique, deux variantes de modem via le drapeau de build YUKI_MODEM : eg912 (par défaut) / bg77
Classe de produit
Module de connectivité cellulaire (composant à intégrer pour un MCU hôte)
Fabricant
ImagineOn GmbH, Neusser Str. 27–29, 50670 Cologne, Allemagne
Version du micrologiciel
1.0.0
Plateforme matérielle
Silicon Labs EFR32MG26 (ARM Cortex-M33), coldwave-os 2.2.0
UUID de service
00000000-0000-1000-8002-006D0099AB53
Version du document
1.0 — 2026-07-13
Langues
Allemand (original), anglais, français
Comment lire ce document. Le Coldwave Yuki Module (YMOD) est un module radio destiné à être intégré sur une carte porteuse côté client. Le présent manuel s'adresse aux intégrateurs (concepteurs matériel / micrologiciel de la carte porteuse ou du MCU hôte) et aux exploitants d'installations. Il décrit l'interface hôte logique (protocole UART), la connexion cellulaire / backend, la signalisation d'état, l'architecture de sécurité et les indications réglementaires. Les caractéristiques mécaniques, électriques et de tracé du module figurent dans la fiche d'intégration matérielle jointe ; lorsque le présent manuel ne peut pas les déduire de l'état du micrologiciel, elles sont marquées [à confirmer].
Sommaire
  1. À propos de ce document
  2. Fabricant, marquage CE, déclaration UE de conformité simplifiée
  3. Utilisation conforme
  4. Identification du module & variantes
  5. Sécurité
  6. Vue d'ensemble du module & architecture
  7. Interface hôte : signaux & brochage
  8. Intégration (montage, antenne, alimentation)
  9. Protocole hôte UART (TLV + CRC-16)
  10. Première mise en service, identité & Claim-Code
  11. Exploitation & configuration
  12. Positionnement GNSS (bg77 uniquement)
  13. Mises à jour du micrologiciel (OTA) & Secure Boot
  14. LED d'état & signal NW_ERR
  15. Reset & réinitialisation d'usine
  16. Cybersécurité (EN 18031-1) — consignes pour les intégrateurs/exploitants
  17. Connectivité cellulaire & reprise
  18. Maintenance
  19. Paramètres radio
  20. Caractéristiques techniques (récapitulatif)
  21. Dépannage
  22. Mise hors service & mise au rebut
  23. Support, signalement de vulnérabilités, mises à jour de sécurité
  24. Composants logiciels & licences
  25. Glossaire
  26. Historique des révisions

1. À propos de ce document

Le présent manuel décrit l'intégration et l'exploitation du Coldwave Yuki Module (YMOD) d'ImagineOn GmbH — un module de connectivité cellulaire qui relie une carte porteuse ou un MCU hôte au backend Coldwave via un protocole UART local. Le public visé comprend les intégrateurs (développement de la carte porteuse et du micrologiciel hôte) ainsi que les exploitants d'installations.

Le YMOD est un composant à intégrer. Certaines étapes pertinentes pour la conformité et la sécurité (tracé RF, chemin d'antenne, provisionnement des clés, configuration Secure Boot / anti-rollback, activation du watchdog, certification du produit final) relèvent de la responsabilité de l'intégrateur ou du fabricant du produit final — voir §16 et le justificatif d'intégration du module dans la documentation technique.

2. Fabricant, marquage CE, déclaration UE de conformité simplifiée

2.1 Fabricant

ImagineOn GmbH
Neusser Str. 27–29
50670 Cologne, Allemagne
Web : https://www.imagineon.de
Compliance : compliance@imagineon.de · PSIRT : security@coldwave.io

2.2 Marquage CE & dispositions légales appliquées

L'évaluation de la conformité est réalisée selon le module A (contrôle interne de la production). Actes juridiques UE appliqués :

2.3 Déclaration UE de conformité simplifiée (Art. 10 (9) RED)

Par la présente, ImagineOn GmbH déclare que l'équipement radioélectrique de type Coldwave Yuki Module (YMOD) (variantes eg912 / bg77) est conforme à la directive 2014/53/UE. Le texte complet de la déclaration UE de conformité (n° YMOD-DoC-1.0.0, émise le 2026-06-07, commit source 7247ed2b53) fait partie de la documentation technique et est disponible auprès du fabricant (compliance@imagineon.de). Source en ligne : [à confirmer].

2.4 Normes harmonisées appliquées

DomaineNorme
SécuritéEN 62368-1:2020+A11:2020
Exposition RFEN 50665:2017
CEM (radio)EN 301 489-1 V2.2.3, EN 301 489-17 V3.2.4, EN 301 489-52 V1.2.1
Radio (cellulaire)EN 301 908-1 V15.2.1, EN 301 908-13 V13.2.1
CybersécuritéEN 18031-1:2024
Prospectif (CRA)ETSI EN 303 645 V3.1.3

Remarque : le SoC EFR32MG26 comprend une partie radio BLE / 802.15.4 qui, dans les deux variantes YMOD, n'est pas liée par le micrologiciel (aucune pile logicielle dans le build). Il s'agit d'une réserve liée à la plateforme pour de futures variantes. La fréquence, la modulation et la puissance d'émission de la partie cellulaire sont entièrement spécifiées par le module Quectel pré-certifié correspondant (EG912 ou BG77) ; le YMOD ne comporte aucune conception radio propre.

3. Utilisation conforme

Le YMOD est un module de connectivité cellulaire destiné à être intégré sur une carte porteuse côté client. Il assure pour un MCU hôte la connexion cellulaire (LTE), la communication backend sécurisée par DTLS (télémétrie / synchronisation des propriétés, configuration à distance, déclenchement OTA), l'identité de l'appareil ainsi que — dans la variante bg77 — le positionnement GNSS, et met ces services à disposition via un protocole UART basé sur TLV.

Utilisation typique : en tant que module radio monté dans des environnements industriels / tertiaires. L'alimentation est fournie par la carte porteuse (SELV/PELV).

Ne sont notamment pas conformes :

Le YMOD n'embarque aucune passerelle de bus de terrain Modbus / BACnet, aucun scripting / Script-VM, aucun supercondensateur / tampon en cas de coupure d'alimentation, aucune RTC sauvegardée par pile et aucun budget de données. Ces fonctions présentes dans les produits frères de la gamme yukiblock ont été supprimées pour le YMOD sans remplacement.

4. Identification du module & variantes

4.1 Identité du micrologiciel

ChampValeur
ID produit (product_id)YMOD
ID matériel (hw_id)EFR32MG26
Version du micrologiciel1.0.0 (constante de build APP_VERSION_STR, issue du tag Git à la release)
UUID de service00000000-0000-1000-8002-006D0099AB53 (YMOD_SRV_UUID)
UUID du service client00000001-0000-1000-8002-006D0099AB53 (CUST_SRV_UUID) — paramétrable via UART SET_UUID
ID d'appareilIMEI (15 chiffres) du module cellulaire

4.2 Variantes de modem (un arbre source unique, drapeau de build YUKI_MODEM)

Caractéristiqueeg912 par défautbg77
Module cellulaireQuectel EG912Quectel BG77
Technologie radioLTE Cat-1LTE-M / NB-IoT
GNSSnonoui (intégré, réception seule)
Débit du lien modem-hôte (interne au module, module↔modem)2 100 000 bauds115 200 bauds
Modèle de qualité LTECat-1 (Tau 20 min)LTE-M (Tau 1 min)
Définition de buildYUKI_MODEM_EG912=1YUKI_MODEM_BG77=1, YUKI_MODEM_WITH_GNSS=1

Les deux variantes sont fonctionnellement identiques, hormis le modem, le chemin GNSS et le modèle de qualité LTE. Le débit du lien modem-hôte désigne la connexion interne au module entre le YMOD et le modem Quectel — et non le débit de l'interface UART hôte vers le MCU client (voir §7/§9).

4.3 Marquage

L'identifiant technique de l'appareil est l'IMEI ; il est lu depuis le modem au premier démarrage, contrôlé quant à sa plausibilité et persisté. La révision matérielle, le marquage du module et l'attribution des numéros de série sont définis dans les données matérielles : [à confirmer].

5. Sécurité

Intégration et mise en service exclusivement par du personnel qualifié. Avant toute intervention sur la carte porteuse, couper l'alimentation. Respecter les mesures de protection ESD lors de la manipulation du module.

5.1 Consignes de sécurité

5.2 Protection contre l'exposition RF

La puissance d'émission de la partie cellulaire est déterminée par le module Quectel monté. L'évaluation de l'exposition RF selon EN 50665 est réalisée au niveau du produit final par l'intégrateur, y compris la détermination de la distance minimale requise. Le récepteur GNSS de la variante bg77 est un récepteur pur (aucune propriété d'émission).

6. Vue d'ensemble du module & architecture

Le YMOD s'exécute comme unique logiciel sur un EFR32MG26 (Cortex-M33) sous coldwave-os 2.2.0. Le micrologiciel est délibérément conçu de manière épurée :

┌───────────────────────────────────────────────────────────────┐
│  Applikation (firmware/src/)                                   │
│  ├─ main.cpp        Identität (product_id="YMOD",              │
│  │                  hw_id="EFR32MG26"), Modem-Init-Blob         │
│  ├─ app.cpp         yuki_app_init(): Board + Connectivity-      │
│  │                  Supervisor + Coldwave-Service + Backend     │
│  ├─ app/app_main.cpp UART-Server, GNSS (nur bg77),             │
│  │                   GPIO0/1-Tags, SYNC, Status-LEDs, Sync-Loop │
│  ├─ app/app_status.cpp  Status-LED-Zustandsmaschine           │
│  ├─ app/mcc_timezone.c  MCC → POSIX-TZ                         │
│  ├─ uart_protocol/  TLV-Server + CRC-16 + Handler + IO         │
│  └─ cli/cli.c       Serielle Diagnose-CLI                      │
├───────────────────────────────────────────────────────────────┤
│  coldwave-yuki-core 1.0.0 (In-House, gepinnt):             │
│  Connectivity-Supervisor + Recovery + LTE-Quality.             │
│  Power-Fail / Budget auskompiliert (YUKI_CORE_WITH_*=OFF).     │
├───────────────────────────────────────────────────────────────┤
│  coldwave-os 2.2.0: Kernel (FreeRTOS), lwIP, mbedTLS/PSA,      │
│  DTLS, OTA, KV-FS, AT-Modem-Treiber, MCUboot-Bootloader        │
└───────────────────────────────────────────────────────────────┘

La principale surface d'attaque locale est le serveur de protocole UART (§9). La connexion au backend (DTLS/LTE), l'OTA, le KV-FS et la cryptographie PSA sont délégués à coldwave-os ; la logique de connectivité et de reprise ainsi que le modèle de qualité LTE proviennent de coldwave-yuki-core.

7. Interface hôte : signaux & brochage

Le YMOD met à disposition du MCU hôte les signaux logiques suivants. L'affectation physique à l'empreinte du module (numéros de broches/pastilles) est définie dans la fiche d'intégration matérielle : [à confirmer].

SignalDirectionFonction
UART hôte (uart1) : TXD, RXD, RTS, CTSbidirectionnelProtocole TLV local vers le MCU hôte (§9). 8-N-1 ; lignes de contrôle de flux matériel (RTS/CTS) présentes. Débit de l'UART hôte : [à confirmer] (aucune constante de build dans l'état de micrologiciel vérifié ; à définir lors de l'intégration).
GPIO0 / GPIO1Sortie (module → carte porteuse)Service-tags : broches de sortie commutables via le backend ou par UART (SET sur la propriété 0x2000/0x2001, type BOOL).
SYNCEntrée (carte porteuse → module)Entrée d'interruption ; un front montant déclenche une synchronisation backend immédiate, déclenchée par événement.
SLEEPEntrée (pull-up)Un niveau bas demande un traitement basse consommation / veille (chemin de réserve).
NW_ERRSortie (module → carte porteuse)Signal matériel « liaison backend perturbée » : niveau haut en cas d'erreur cellulaire / backend, niveau bas dès que le backend est rattaché.
LED_GREEN / LED_REDSortieCommande des LED d'état (§14).
Port d'antenne cellulaireRF50 Ω, conformément aux prescriptions RF Quectel.
Port d'antenne GNSS bg77RF (Rx)Variante bg77 uniquement ; chemin d'antenne conforme à la BG77 GNSS Application Note.
Interface SIMSIM/eSIM sur la carte porteuse / le module ; facteur de forme et protection ESD : [à confirmer]. Le profil réseau (APN/MNO) est une constante de build du micrologiciel.
Alimentation / GNDSELV/PELV depuis la carte porteuse.
SWD/JTAG + SEGGER RTTDébogageAccessible uniquement physiquement via JTAG/SWD ; verrouillé à la livraison par le verrou de débogage du Gecko Security Element (debug-lock).

Broches réservées / liées à la plateforme : une entrée BLE et une entrée POWER-GOOD sont configurées lors du bring-up de la carte, mais ne sont pas utilisées de manière productive dans le périmètre fonctionnel actuel.

8. Intégration (montage, antenne, alimentation)

9. Protocole hôte UART (TLV + CRC-16)

Le serveur de protocole UART (src/uart_protocol/yuki_module_server.c) est l'interface locale du module vers le MCU hôte et, en même temps, sa principale surface d'attaque. Il est sécurisé par une validation stricte des trames, des longueurs et du CRC (testé par fuzzing). Aucune authentification n'a lieu — la liaison est considérée comme interne à l'assemblage / au module (liaison hôte de confiance).

9.1 Format de trame

┌──────────── Header (2 Byte) ────────────┬── Payload (0..511) ──┬── CRC (2 Byte) ──┐
│ Byte0 = (Type << 1) | (Len-Bit8)          │  V[0..Len-1]          │ CRC-16 (Big-Endian)│
│ Byte1 =  Len & 0xFF                       │                      │                   │
└──────────────────────────────────────────┴──────────────────────┴───────────────────┘

9.2 Format de réponse

À chaque trame de requête, le serveur répond avec le même Type. La charge utile commence par un octet d'erreur / d'état, suivi des données utiles :

Response.Payload = [ ErrByte ] [ Daten … ]
CodeNomSignification
0x00ERR_OKSuccès
0x01ERR_CMDCommande inconnue / non prise en charge
0x02ERR_ARGArgument invalide / violation de longueur
0x03ERR_BUSYService non prêt / occupé (p. ex. service pas encore enregistré, GNSS actif)
0x10ERR_SIMErreur SIM
0x11ERR_NETCellulaire non enregistré
0x12ERR_CONNAucune connexion backend / de données
0xFFERR_INTERNALErreur interne

9.3 Jeu de commandes

TypeCommandeDirectionDonnées utiles de réponse (après ErrByte)
0x00GET_PUBKEYHôte → moduleclé publique ED25519 de l'appareil, 32 octets
0x01GET_IMEIHôte → moduleIMEI sous forme de chaîne
0x02GET_ICCIDHôte → moduleICCID sous forme de chaîne
0x04SETHôte → moduleaucune (définit une propriété ; charge utile voir §9.4)
0x05SYNCHôte → moduleaucune (déclenche une synchronisation backend du service client)
0x06VERSIONHôte → moduleversion du micrologiciel sous forme de chaîne
0x07STATUSHôte → moduledernier code d'état de connexion (ErrByte)
0x08GEO_ENA bg77Hôte → moduleaucune (active/désactive le fix GNSS ; sur eg912 → ERR_CMD)
0x09GEO_RPTModule → hôterapport géographique de 22 octets (push, voir §12)
0x0AGET_TIMEHôte → moduleheure Unix UTC, 4 octets big-endian
0x0BSET_UUIDHôte → moduleaucune (préfixe 32 bits → UUID du service client)
0x0DGET_CLAIMCODEHôte → moduleClaim-Code (chaîne Base58 à 12 caractères)
0x0EGET_LTE_QUALITYHôte → modulequalité du signal 0..5 (1 octet)
0x0FGET_LTE_CONNECTEDHôte → moduleconnexion de données du modem active (1 octet 0/1)
0x10GET_CLOUD_CONNECTEDHôte → modulebackend rattaché (1 octet 0/1)
0x11FACTORY_RESETHôte → moduleaucune réponse — le module efface le cache IMEI/ICCID/script et redémarre (§15)

9.4 Charge utile SET & types de données

La commande SET définit une propriété sur le service client. Structure de la charge utile :

[0..1] id (Big-Endian)   [2] Flags (Bit4 = read-only)   [3] Typ   dann Wert
  Typ STRING/BIN:  [4..5] Länge (BE)   [6..] Bytes
  sonst (Skalar):  [4..]  Wert (feste Länge je Typ)
TypeCodeLongueurTypeCodeLongueur
INT320x014FLOAT0x094
INT160x022DATETIME0x0A4
INT80x031DOUBLE0x0B8 *
UINT320x044BIN0x0Cvariable
UINT160x052UINT640x0D8 *
UINT80x061STRING0x0Evariable
BOOL0x071INT640x0F8 *
UUID0x0816

* DOUBLE, UINT64 et INT64 sont acceptés dans l'état actuel du micrologiciel, mais pas encore traités (réponse ERR_INTERNAL).

9.5 CLI de diagnostic

Via la CLI de diagnostic série (débogage/service uniquement), les commandes info, imei, iccid, pubkey, quality, connected, cloud_connected et exit, entre autres, sont disponibles.

10. Première mise en service, identité & Claim-Code

10.1 Séquence de démarrage

  1. Mise sous tension / redémarrage → mainyuki_app_init() : bring-up de la carte, thread des LED d'état, init du FS.
  2. Le superviseur de connectivité (coldwave-yuki-core) démarre le modem ; l'IMEI est lu, contrôlé quant à sa plausibilité (15 chiffres) et conservé dans le KV-FS. Un IMEI vide / non plausible n'est pas enregistré ; le module redémarre de manière contrôlée et réessaie.
  3. Le service Coldwave (cwClient) est enregistré ; attachement au backend via LTE/DTLS auprès du backend Coldwave.
  4. Le serveur de protocole UART démarre (et exporte à cette occasion la clé publique de l'appareil).
  5. Boucle app_main() : sert l'hôte, pilote les LED d'état et la synchronisation périodique.

10.2 Identité & intégration (onboarding)

11. Exploitation & configuration

En fonctionnement normal, le module fonctionne de manière autonome. La boucle app_main() (période 2 s) :

Les propriétés de diagnostic publiées par le superviseur (en lecture seule) comprennent :

PropriétéIDTypeSignification
LTE_RSRP0x1000int16niveau de réception RSRP (dBm)
LTE_BW0x1010uint16bande passante LTE
LTE_Q0x1011uint8qualité du signal
CELLINFO_MCC/MNC0x1001/0x1002uint16Mobile Country/Network Code
CELLINFO_LAC/CI0x1003/0x1004uint32Location Area Code / Cell-ID
GPIO0 / GPIO10x2000/0x2001boolsorties service-tag

Les paramètres d'exploitation pertinents pour la sécurité (FQDN du backend, APN, MNO, variante de modem, débit du modem) proviennent exclusivement de constantes de build et ne sont pas modifiables à l'exécution par des entrées externes. Il n'existe aucun mot de passe usine par défaut ni console de configuration locale.

12. Positionnement GNSS (bg77 uniquement)

Dans la variante bg77, le périphérique GNSS (gnss0) est ouvert. L'hôte active le positionnement via GEO_ENA (Type 0x08). Le module interroge ensuite (poll) le récepteur GNSS et envoie, en cas de fix valide, un rapport géographique (GEO_RPT, Type 0x09) en push vers l'hôte — une charge utile fixe de 22 octets :

OffsetChampFormat
0fix_typeuint8
1sats (nombre de satellites)uint8
2..5ts_utc (heure Unix)uint32 BE
6..9lat_e7 (latitude × 1e7)int32 BE
10..13lon_e7 (longitude × 1e7)int32 BE
14..17alt_cm (altitude en cm)int32 BE
18..21hdop_centi (HDOP × 100)uint32 BE

Le récepteur GNSS est un récepteur pur (aucune propriété d'émission). Pendant les fix GNSS actifs, la LED verte affiche le motif GPS (§14). Sur la variante eg912, le chemin GNSS n'est pas lié ; le serveur répond à GEO_ENA par ERR_CMD.

13. Mises à jour du micrologiciel (OTA) & Secure Boot

  1. Le backend déclenche une mise à jour via le canal de propriétés authentifié par DTLS.
  2. L'image est téléchargée et placée dans l'emplacement OTA.
  3. La signature cryptographique est vérifiée (ECDSA-P256 / SHA-256).
  4. Si la signature est valide, le bootloader coldwave-os de type MCUboot effectue l'échange (swap) et redémarre ; en cas de signature invalide / absente, la mise à jour est rejetée et l'appareil revient à l'image valide précédente.
L'intégrité et l'authenticité proviennent de la signature de l'image, non du transport. La monotonie des versions (anti-rollback) s'appuie sur APP_VERSION_STR (seul un véritable tag Git SemVer est repris comme version OTA). L'activation de Secure Boot / anti-rollback et la mise à disposition de la clé de signature OTA de production sont des conditions préalables de production à la charge de l'intégrateur (voir §16).

14. LED d'état & signal NW_ERR

Le module pilote une LED verte et une LED rouge. Le thread d'état fonctionne à une cadence de 100 ms ; les motifs découlent de l'état défini par la boucle principale :

Motif LEDÉtatSignification
vert, fixeNORMALEn ligne — modem connecté et backend rattaché
vert, clignotement rapide (~2 Hz)CONNECTINGModem connecté, enregistrement backend en cours
vert, clignotement lent (~0,5 Hz)SYNCUne synchronisation backend vient d'être effectuée
vert, motif d'impulsions (3 impulsions courtes toutes les ~1,2 s)GPS bg77Positionnement GNSS actif
rouge, 2× clignotement + pauseNET_ERRORModem enregistré, mais aucune connexion de données
rouge, 3× clignotementMOBILE_ERRORModem non enregistré / aucun réseau cellulaire
rouge, 4× clignotementSIM_ERRORErreur SIM

En complément, la broche de sortie NW_ERR signale l'état de la liaison backend au niveau matériel : niveau haut en cas d'erreur cellulaire / backend, niveau bas dès que le backend est rattaché. Le MCU hôte peut exploiter ce signal sans interrogation UART.

15. Reset & réinitialisation d'usine

Le YMOD ne possède aucun bouton de reset physique. La réinitialisation s'effectue via l'hôte :

Les erreurs de bring-up non récupérables aboutissent à une boucle d'attente jusqu'à ce que le watchdog matériel déclenche un redémarrage. L'activation du watchdog matériel dans le build de release est une condition préalable d'intégration : [à confirmer].

16. Cybersécurité (EN 18031-1) — consignes pour les intégrateurs/exploitants

16.1 Ce que le module fait de lui-même

16.2 Responsabilité de l'intégrateur / de l'exploitant

16.3 Période de mises à jour de sécurité

ImagineOn fournit pour ce produit des mises à jour de micrologiciel de sécurité pendant une période de support définie et suit un processus de divulgation coordonnée (CVD) conforme à IEC 62443-4-1 (§23). La durée calendaire de la période de support pour le produit final YMOD : [à confirmer].

17. Connectivité cellulaire & reprise

17.1 Profil réseau

17.2 Échelle de reprise

Le superviseur de connectivité (coldwave-yuki-core) surveille la connexion (période 5 s) et, en cas de perte, parcourt une échelle de reprise déterministe : reconnexion → reset du modem → redémarrage. Le redémarrage n'intervient qu'après au plus 3 resets infructueux (max_resets_before_reboot=3) et une durée de fonctionnement minimale de 30 min. Environ 5 synchronisations échouées sans aller-retour vers le backend sont considérées comme « attaché mais inactif » (attached-but-dead) et déclenchent elles aussi un reset du modem. Un plafond de débit (ltemq_rate_cap_kbit_s) limite le débit ; il n'existe pas de budget de données mensuel.

18. Maintenance

Le module ne nécessite aucun entretien. Il ne contient aucune pile de sauvegarde RTC ni aucune pièce remplaçable par l'utilisateur (l'heure provient du NTP). L'entretien côté produit final (nettoyage, vérification du raccordement d'antenne) incombe à l'exploitant conformément à la documentation du produit final.

19. Paramètres radio

ParamètreVariante eg912 par défautVariante bg77
Module radioQuectel EG912 (pré-certifié)Quectel BG77 (pré-certifié)
Service radioLTE Cat-1LTE-M (Cat-M1) / NB-IoT
GNSSintégré, réception seule
Bande par défaut (code)LTE_B8 (900 MHz) ; bandes prises en charge selon la fiche technique du module
Puissance d'émission / modulationspécifiées par le certificat de module Quectel correspondant (aucune conception radio propre)
Antenne50 Ω, tracé conforme à la RF Application Note Quectel ; pour bg77, chemin d'antenne GNSS supplémentaire

Le justificatif d'intégration (RED Art. 3(2)) s'appuie, pour les deux modules, sur le certificat CE Quectel correspondant (GCF/PTCRB) et sur des essais au niveau appareil selon EN 301 489-1/-52 et EN 301 908-1/-13, au niveau du produit final.

20. Caractéristiques techniques (récapitulatif)

MCU / plateformeSilicon Labs EFR32MG26 (ARM Cortex-M33), Gecko Security Element (HW-TRNG, PSA Crypto)
Système d'exploitationcoldwave-os 2.2.0 (FreeRTOS, lwIP, mbedTLS/PSA, OTA, KV-FS, bootloader MCUboot)
CellulaireQuectel EG912 (LTE Cat-1) ou BG77 (LTE-M/NB-IoT) — selon la variante
GNSSbg77 uniquement, réception seule
Interface hôteUART (TLV + CRC-16/CCITT-FALSE), TLV max. 511 octets ; GPIO0/1, SYNC, SLEEP, NW_ERR
Sécurité (logiciel)Secure Boot, OTA signées (ECDSA-P256/SHA-256), DTLS, keystore PSA, clé d'appareil ED25519
AlimentationSELV/PELV via la carte porteuse — caractéristiques électriques : [à confirmer]
Dimensions / empreinte[à confirmer]
Conditions ambiantes[à confirmer]

21. Dépannage

SymptômeCause possibleAction
NW_ERR reste au niveau haut / LED rouge clignote 3×Modem non enregistré, aucun réseauVérifier le serrage de l'antenne et la réception ; vérifier la SIM / la disponibilité du réseau.
LED rouge clignote 2×Modem enregistré, mais aucune connexion backend / de donnéesVérifier l'APN / l'état du réseau ; attendre l'échelle de reprise (§17.2).
LED rouge clignote 4×Erreur SIMVérifier le logement / les contacts de la SIM et son provisionnement.
Réponses UART avec ERR_ARGLongueur de trame / CRC ou charge utile SET erronéeVérifier l'en-tête / le champ de longueur, le CRC-16/CCITT-FALSE et la longueur fixe du type (§9).
Réponse UART ERR_BUSY sur SYNC/SETService client pas encore enregistré ou GNSS actifN'émettre qu'après l'attachement au backend ; définir l'UUID via SET_UUID.
GEO_ENA renvoie ERR_CMDVariante eg912 sans GNSSGNSS uniquement sur bg77 ; vérifier la variante.
Le module redémarre cycliquement au démarrageaucun IMEI plausible du modemVérifier le câblage du modem / de la SIM et l'init du modem.

22. Mise hors service & mise au rebut

  1. Couper l'alimentation de la carte porteuse.
  2. Le cas échéant, marquer l'appareil comme hors service dans le portail Coldwave.
  3. Éliminer le module ou le produit final dans les règles de l'art.
Mise au rebut (DEEE 2012/19/UE) : les équipements électriques / électroniques ne doivent pas être jetés avec les ordures ménagères. Les éliminer via les points de collecte communaux ou le circuit de reprise du fabricant.
N° d'enreg. DEEE (DE) : DE 54689668

23. Support, signalement de vulnérabilités, mises à jour de sécurité

ObjetContact
Signalement de sécurité / de vulnérabilité (CVD/PSIRT)security@coldwave.io
Demandes de conformité / surveillance du marchécompliance@imagineon.de
Support général / intégration[à confirmer] · www.imagineon.de

Merci de ne pas utiliser d'issues GitHub publiques pour les vulnérabilités. Lors du signalement, indiquer la version du micrologiciel (tag de release / commit) et la variante de modem (eg912/bg77) ; pour les sujets relatifs au protocole UART, une séquence d'octets minimale est idéale. Accusé de réception sous 2 jours ouvrés ; tri sous 5 jours ouvrés ; correctif pour Critical/High (CVSS ≥ 7) sous 90 jours, pour Medium/Low sous 180 jours (regroupé dans la prochaine version mineure). Divulgation coordonnée après la disponibilité du correctif et une fenêtre de déploiement appropriée (typ. 30 jours). Détails : SECURITY.md.

24. Composants logiciels & licences

ComposantVersionRôle
coldwave-os (image FU)2.2.0RTOS, réseau, DTLS, OTA, FS, PSA
coldwave-os (bootloader)2.2.0Vérification d'image de type MCUboot
libflake(via coldwave-os)Couche de propriétés, IPC
coldwave-yuki-core1.0.0Superviseur de connectivité + reprise + qualité LTE
Serveur de protocole UART(produit)TLV + CRC-16/CCITT-FALSE + gestionnaires — développé par ImagineOn

Le code applicatif du YMOD (src/) est entièrement développé par ImagineOn ; il n'existe aucun code source tiers vendored dans l'image, hormis le SDK coldwave-os. La SBOM complète (CycloneDX) se trouve sous firmware/compliance/sbom/ymod-v1.0.0.cdx.json. Distribution par ImagineOn GmbH selon les conditions de licence logicielle ImagineOn (imagineon.de/de/info/licensing-terms) — aucune licence open source ; redistribution uniquement sous accord écrit.

25. Glossaire

APNAccess Point Name — point d'accès dans le réseau cellulaire
Claim-Codecode d'intégration dérivé cryptographiquement (Base58)
CRC-16/CCITT-FALSEsomme de contrôle (poly 0x1021, init 0xFFFF) sur les trames UART
DTLSDatagram TLS — transmission UDP chiffrée
ED25519procédé de signature à courbe d'Edwards de la clé d'appareil
GNSSnavigation par satellite (bg77 uniquement, réception seule)
ICCIDidentifiant de la SIM
IMEIidentifiant unique du modem / de l'appareil (15 chiffres)
LTE Cat-1 / LTE-M / NB-IoTtechniques de données cellulaires des variantes de modem
OTAmise à jour du micrologiciel par voie hertzienne (Over-the-Air)
PSA CryptoPlatform Security Architecture — stockage de clés / API crypto
REDDirective Équipements Radioélectriques 2014/53/UE
RSRPReference Signal Received Power — niveau de réception LTE
TLVType-Length-Value — format de trame du protocole UART
YUKI_MODEMdrapeau de build pour le choix de la variante de modem (eg912/bg77)

26. Historique des révisions

VersionDateModification
1.02026-07-13Première édition du manuel d'intégration et d'exploitation (micrologiciel 1.0.0)

© 2026 ImagineOn GmbH. Tous droits réservés. Le présent manuel ne peut être reproduit ou communiqué à des tiers sans l'autorisation expresse d'ImagineOn GmbH, exception faite de la transmission dans le cadre de la chaîne d'approvisionnement du produit Coldwave Yuki Module (YMOD).