Skip to main content

Modules, Boards & Gateways · Software

Module Programming/Test Fixture + SDK Package

Coming soonModel code: ET-FIX-EM / ET-SDK-EM

Solder the module, drop it in the fixture, build the SDK — production line and firmware ready from day one.

ET-FIX-EM test fixture: aluminium base, module in a delrin nest, open lid, toggle clamp and control board

Overview

The problem. Selling a module is not enough: the integrator's first question is “how do I program it, how do I test it, how do I update the firmware?” With imported modules, the answer is an AT command set and closed firmware, and production testing is left to the customer. In Elmes' own production, too, testing and programming are done with product-specific scripts and hand-connected SWD cables; they are rewritten for every product and no measurement records are kept.

The solution. ET-FIX-EM is a fixture that holds the castellated module on pogo pins and provides SWD, UART, power/current measurement and the RF output (SMA → attenuator → power meter/spectrum analyzer) over a single USB connection. The test script (the SDK production test protocol) runs the steps in sequence, logs the result against the module's UID, and writes the ID/NetID/channel and calibration values. ET-SDK-EM delivers the same protocol and every software layer of the module (HAL, radio driver, bootloader/OTA, protocol core, examples) under an open license; Elmes product applications and network/fleet tools stay in the Pro tier.

Two license tiers, one code base.

TierContentsLicenseFor
EM-SDK OpenHAL/power/clock layer, shared SX126x-LLCC68-WL radio driver, ESP bridge protocol, bootloader (UART/USB/OTA client), protocol core (framing, NetID/address, ACK, AES-CCM), production test protocol, example applications, documentationApache-2.0 (patent grant, commercial use permitted, Elmes trademark protected)Everyone (module customers)
EM-SDK ProElmes product application layers (crane, well/tank, Firesens…), network profiles (repeater, star management, time slotting), OTA/fleet server tools, production fixture scripts and calibration, signing infrastructure, priority supportClosed; under an NRE/license agreementContract OEMs

The open tier drives adoption of the module and builds trust; that is the real difference from closed imported modules. Open and Pro builds come from the same repository with different build profiles. The bootloader is open; the signature verification key is embedded in the product and the private key stays with its owner — customers can sign their own modules with their own key.

Production bench: fixture on an ESD mat, EM-SDK production test screen on a laptop and a module tray
In use

This product is in development or field testing. Contact us for technical information, pilot use and a preliminary quotation.

Features

  • EM-SDK Open (Apache-2.0): HAL, shared radio driver (SX126x/LLCC68/WL), ESP bridge protocol, bootloader, protocol core (AES-CCM), production test protocol and examples; free for commercial use.
  • EM-SDK Pro: network profiles (repeater, time slotting), OTA/fleet server tools, fixture scripts and calibration, signing infrastructure, priority support; under contract.
  • Sign with your own key: the bootloader is open; the verification key is written at production and the private key stays with you.
  • Single code base: Open and Pro are built from the same repository with different build profiles, so there are never two diverging code bases.
  • TargetSingle-USB fixture: SWD + UART + power + current measurement + RF path; battery emulation for LP tests; swappable, member-specific pogo plate.
  • TargetTest records: JSON/CSV per module UID; label printer; statistics (yield, RF power distribution).
  • TargetService tool CLI (Open): pairing, NetID/address/channel, RSSI/PER testing, OTA to a single device; fleet OTA is in Pro.
  • TargetBuild profiles: RADIO = sx126x / llcc68 / wl / none; MCU = g071 / g0b1 / wle5 / h7; TIER = open / pro.

Package contents

Package contents
Model codeContentsForLicense / deliveryRequest information
ET-FIX-EMFixture base (with lid and pogo-plate slot) + control board (USB, SWD probe, UART, current measurement, RF SMA output) + 1 module plateProduction line (Elmes), OEM customersHardware saleRequest information: ET-FIX-EM
ET-FIX-EM-xxxMember-specific pogo plate (e.g. -G0L: the shared PCB of EM-G0L-433, EM-G0L-433-LP, EM-G0K-433 and EM-G0L-868/-915; -NL: EM-NL-433; -G0C: EM-G0C; -W5L: EM-W5L-433)Production line (Elmes), OEM customersHardware saleRequest information: ET-FIX-EM-xxx
ET-SDK-EM (Open)EM-SDK Open source code, documentation, examples, production test protocolEveryoneApache-2.0, downloadable from the repositoryRequest information: ET-SDK-EM (Open)
ET-SDK-EM-PROEM-SDK Pro: network profiles, OTA/fleet tools, fixture scripts and calibration, signing infrastructure, priority supportContract OEMsClosed; NRE/license agreementRequest information: ET-SDK-EM-PRO

Specifications

Values marked “Target” are design targets, next-generation values or chip-vendor data; they are updated as measurement and certification are completed.

Software
Supported MCUsSTM32G0 (G071/G0B1), STM32WLE5
Additional MCU profilesSTM32H7; STM32F070 (MOD-M0 migration profile)Target
Supported radiosSX1268 / SX1262 / LLCC68 (SPI), STM32WL SubGHz (SUBGHZSPI), ESP32 bridge (UART), cellular modem (AT, EM-G0C)
OS / RTOSBare-metal (super loop + events); FreeRTOS optional; FreeRTOS/DiscOS on H7
Language / buildC11; CMake + arm-none-eabi-gcc; -Wall -Werror
IDE / coding standardSTM32CubeIDE project generator; MISRA subsetTarget
APIHAL (power/clock/WDG/GPIO/ADC), radio (init/tx/rx/sleep/cad/profile), proto (send/recv/ack/addr), boot (ota_begin/chunk/verify/apply), lp (sleep/wake/batt), bridge (esp), net (cellular/Wi-Fi: connect/mqtt)
Application packageSingle image (bootloader + application, signed); DiscOS .dap only in the H7/DiscOS profile
UpdatesUART bootloader; USB-DFU (G0B1); LoRa OTA (chunked, CRC, signature); Wi-Fi/cellular OTA
A/B image partitioningFor LoRa OTA; on G0B1/CETarget
ConnectivityLoRa protocol core (16-bit NetID + 16-bit address + UID + 8 channels, AES-128-CCM), ESP bridge, MQTT/TLS (EM-G0C / EM-G0W)
Memory budget (G071)Bootloader ≤ 16 KB; core + drivers ≤ 48 KB flash, ≤ 12 KB RAM; flash split in half for A/B on G0B1/CETarget
Interfaces
Fixture interfacesSWD (CMSIS-DAP or external ST-LINK socket), UART ×2 (module + ESP), GPIO (BOOT0, NRST, WKUP trigger), USB-C to PC
RF measurement pathSMA output, 20–30 dB attenuator, to a power meter/spectrum analyzer; reference module socket (over-the-air ping)
Power
Module supplyProgrammable 2.2–4.2 V (battery emulation) / fixed 3.3 V; current-limited
Current measurement1 µA–500 mA (two ranges)Target
Performance & fail-safe
Test time< 60 s per module (including RF); < 20 s (EM-G0N, no RF)Target
Mechanical & environmental
Pogo pins1.27 mm pitch, P50 class (Ø0.68 mm), 2×16 + extra rows; plate varies by member
Module alignmentEdge pocket + 2 pins; lid force ~0.5–1 N per pogo pin (datasheet class)
Base size≤ 200 × 150 mmTarget
Operating environment+10…+40 °C, workshop environment
Licensing & support
License modelEM-SDK Open: Apache-2.0 · EM-SDK Pro: closed, under contract
DocumentationAPI reference (Doxygen), guides (TR/EN), protocol specification, production test protocol, examples; release notes (SemVer)
Fixture warranty1 yearTarget
Spare partsPogo-pin consumables, spare plates

Applications

  • Elmes production line
  • OEM customer kit
  • Contract manufacturer (EMS) line
  • Field service
  • Firmware development
  • EC carrier board programming
  • Elmes production line: every member of the EM module series and the EC carrier boards (through the EC service connector).
  • External OEM customer kit: module + fixture + SDK.
  • Contract manufacturer (EMS) line: the same test protocol and record format.
  • Field service: pairing, channel setup and single-device OTA with the service tool CLI.

The fixture is not mandatory: production can also run over 4-pin SWD + UART; the fixture adds speed, RF measurement and record keeping. Without RF test equipment, verification is limited to a ping/RSSI test.

Compliance & documentation

The fixture is low-voltage, USB-powered workshop test equipment. The SDK ships with its open-source license documents; the RED test reports of the modules are referenced in the SDK documentation as they become available.

  • Fixture — LVD / EMC
    Low-voltage, USB-powered test equipment
    Out of scope
  • Fixture — RoHS
    Target
  • SDK license package — Apache-2.0 license file and third-party license list (CMSIS, ST HAL/LL — BSD-3; FreeRTOS — MIT; mbedTLS/tinycrypt — Apache/BSD)
    Target
  • Contribution guide and vulnerability disclosure policy
    Target
  • References to module RED test reports in the SDK documentation
    As module reports become available
    Target

Frequently asked questions

Is the SDK free?

EM-SDK Open is free and licensed under Apache-2.0; commercial use is permitted. The Pro tier is offered under contract.

Where is the line between Open and Pro?

Open: everything that makes the module run (HAL, radio, bootloader, protocol core, examples). Pro: Elmes product applications, network profiles (repeater/time slotting), fleet/OTA server tools, fixture scripts and signing infrastructure.

Can I manufacture without the fixture?

Yes: over 4-pin SWD + UART. The fixture is there for speed, RF measurement and record keeping.

Can I sign firmware with my own key?

Yes; the bootloader is open, the verification key is written at production, and the private key stays with you.

Which toolchain?

gcc-arm + CMake, plus Python test scripts; STM32CubeIDE project export is planned.

How does OTA work?

Chunked image, CRC and signature; over LoRa, Wi-Fi, cellular or UART. A/B partitioning is planned on G0B1/CE. Single-device OTA is in Open, fleet OTA in Pro.

Do I need measurement equipment?

Measuring RF power and harmonics requires a power meter/spectrum analyzer (SCPI integration is planned); without one, a ping/RSSI test provides limited verification.

Does the MOD-M0 (previous module) work with the SDK?

The planned path is an STM32F070 migration profile; the existing SX1268 driver (v0.1) will move into the shared driver. Details are in the MOD-M0 section.

Get information about this product

Our engineering team replies within 24 hours.