Modules, Boards & Gateways · Software
Module Programming/Test Fixture + SDK Package
Solder the module, drop it in the fixture, build the SDK — production line and firmware ready from day one.

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.
| Tier | Contents | License | For |
|---|---|---|---|
| EM-SDK Open | HAL/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, documentation | Apache-2.0 (patent grant, commercial use permitted, Elmes trademark protected) | Everyone (module customers) |
| EM-SDK Pro | Elmes 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 support | Closed; under an NRE/license agreement | Contract 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.

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
| Model code | Contents | For | License / delivery | Request information |
|---|---|---|---|---|
| ET-FIX-EM | Fixture base (with lid and pogo-plate slot) + control board (USB, SWD probe, UART, current measurement, RF SMA output) + 1 module plate | Production line (Elmes), OEM customers | Hardware sale | Request information: ET-FIX-EM |
| ET-FIX-EM-xxx | Member-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 customers | Hardware sale | Request information: ET-FIX-EM-xxx |
| ET-SDK-EM (Open) | EM-SDK Open source code, documentation, examples, production test protocol | Everyone | Apache-2.0, downloadable from the repository | Request information: ET-SDK-EM (Open) |
| ET-SDK-EM-PRO | EM-SDK Pro: network profiles, OTA/fleet tools, fixture scripts and calibration, signing infrastructure, priority support | Contract OEMs | Closed; NRE/license agreement | Request 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.
| Supported MCUs | STM32G0 (G071/G0B1), STM32WLE5 |
|---|---|
| Additional MCU profiles | STM32H7; STM32F070 (MOD-M0 migration profile)Target |
| Supported radios | SX1268 / SX1262 / LLCC68 (SPI), STM32WL SubGHz (SUBGHZSPI), ESP32 bridge (UART), cellular modem (AT, EM-G0C) |
| OS / RTOS | Bare-metal (super loop + events); FreeRTOS optional; FreeRTOS/DiscOS on H7 |
| Language / build | C11; CMake + arm-none-eabi-gcc; -Wall -Werror |
| IDE / coding standard | STM32CubeIDE project generator; MISRA subsetTarget |
| API | HAL (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 package | Single image (bootloader + application, signed); DiscOS .dap only in the H7/DiscOS profile |
| Updates | UART bootloader; USB-DFU (G0B1); LoRa OTA (chunked, CRC, signature); Wi-Fi/cellular OTA |
| A/B image partitioning | For LoRa OTA; on G0B1/CETarget |
| Connectivity | LoRa 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 |
| Fixture interfaces | SWD (CMSIS-DAP or external ST-LINK socket), UART ×2 (module + ESP), GPIO (BOOT0, NRST, WKUP trigger), USB-C to PC |
|---|---|
| RF measurement path | SMA output, 20–30 dB attenuator, to a power meter/spectrum analyzer; reference module socket (over-the-air ping) |
| Module supply | Programmable 2.2–4.2 V (battery emulation) / fixed 3.3 V; current-limited |
|---|---|
| Current measurement | 1 µA–500 mA (two ranges)Target |
| Test time | < 60 s per module (including RF); < 20 s (EM-G0N, no RF)Target |
|---|
| Pogo pins | 1.27 mm pitch, P50 class (Ø0.68 mm), 2×16 + extra rows; plate varies by member |
|---|---|
| Module alignment | Edge 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 |
| License model | EM-SDK Open: Apache-2.0 · EM-SDK Pro: closed, under contract |
|---|---|
| Documentation | API reference (Doxygen), guides (TR/EN), protocol specification, production test protocol, examples; release notes (SemVer) |
| Fixture warranty | 1 yearTarget |
| Spare parts | Pogo-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.
- Out of scopeFixture — LVD / EMCLow-voltage, USB-powered test equipment
- TargetFixture — RoHS
- TargetSDK license package — Apache-2.0 license file and third-party license list (CMSIS, ST HAL/LL — BSD-3; FreeRTOS — MIT; mbedTLS/tinycrypt — Apache/BSD)
- TargetContribution guide and vulnerability disclosure policy
- TargetReferences to module RED test reports in the SDK documentationAs module reports become available
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.
Related products
Coming soonModules, Boards & GatewaysElmes EM Module Series
One pinout, one SDK — LoRa, Wi-Fi and cellular in a single module family.
6 members
View details: Elmes EM Module Series
Coming soonModules, Boards & GatewaysI/O Carrier Boards (EC)
Plug in the module, wire the terminals — your wireless I/O box is ready.
View details: I/O Carrier Boards (EC)
Coming soonModules, Boards & GatewaysSTM32 + SX1268 LoRa Module (EM-G0L-433)
A field-proven LoRa path in a castellated module.
View details: STM32 + SX1268 LoRa Module (EM-G0L-433)