Production Programming Options for Silicon Labs Devices

In-System Programming

Programming the device in the end system requires certain pins to be accessible. Then using software tools and hardware the device can be programmed.

More Info

Pre-Programmed Devices

Acquiring devices already programmed then installing them into the system. These devices can come from Silicon Labs, its distributors, or a third party service.

More Info

In-House Device Programming

The do-it-yourself option where devices are programmed once received in-house. This either uses Silicon Labs hardware and tools or third party programmers.

More Info

Production Programming Options for Silicon Labs Devices

For a complete guide to production programming, please view Application Note 136.

In-System Programming

In-system programming involves programming the device after it has been installed in the end system. For this method access to the debug pins is made available so that the device can be programmed. The pins vary depending on the debug interface and device.

Pins needed and associated documentation:

C2 — C2CK, C2D, and GND:

Joint Test Action Group (JTAG) — TCK, TMS, TDI, TDO and GND:

Serial Wire Debug (SWD) — SWDIO and SWCLK:

Once the correct pins are routed, there are a number of tools offered to program the device.

Flash Programmer: A tool that allows the user to flash the device with a binary or hex file. Available within Simplicity Studio that supports EFM8/32, C8051, EFR32, and EZR32.

Simplicity Commander: A tool that contains a scriptable command line, allows the user to flash their application, and create production ready binaries, for more information see UG162: Simplicity Commander Reference.

Jlink Python Programming GUI Tool: A Python 2.7 based GUI tool that uses the Segger JLinkARM.dll to program EFM8 and EFM32 devices via Segger JLink over the C2 or SWD interface.

Flash Programming Utilities: A GUI-based or command line C8051 programmer that allows the user to download code to a device and perform other memory operations without needing to use the IDE. Found here. For more information see AN117

Production Programmer: A standalone tool similar to the flash programmer and Simplicity Commander but targeted more for rapid production programming of many devices. For more information see the MCU Software pages.

Pre-Programmed Devices

Having devices pre-programmed is the easiest option for production programming. No design considerations need to be made and the device can be quickly installed into the final system. However, it is the least adaptable option and therefore is not well suited for rapidly-changing programs. For this option a binary or hex file must be provided.

Silicon Labs offers pre-programmed devices, contact your local sales representative for more information.

Many Silicon Labs distributors and other entities offer pre-programmed devices. For a list, see the table in the community.

In-House Programming

This option involves programming the uninitialized and uninstalled device, in-house. In order to program the device custom made or third party hardware is used.

For custom hardware the information in the following application notes can be used to design and build a custom programmer.




Many third party programmers support Silicon Labs’ products. They vary in speed, price, and number of devices programmed at once. For a list of commonly used programmers Visit the Community

Loading Results