EFM8 Flash - Multi platform GUI Flash tool for Silicon labs EFM8UB1 USB MCUs

Submitted by GG on Tue, 03/10/2020 - 22:11

EFM8 Flash LinuxSilicon Labs makes many excellent 8051 based MCUs. All the MCUs in the EFM8UB line have a native USB and are pre-programmed with a USB HID bootloader. EFM8 Flash is a small GUI tool to flash the MCU from a binary file. The program uses the wxwidgets toolkit for a native look in all supported operating systems and hidapi for cross platform compatibility.

EFM8 Flash is a simple implementation of the protocol described in section 7 of the Silicon Labs application note AN945 "EFM8 Factory Bootloader User's Guide". The utility is very simple to use. Use the browse button to select the file to flash. Make sure the file is in binary format. To convert it from the Intel Hex format output by Silicon Labs Simplicity Studio use the srec_cat command from the S-record package.
EFM8 can currently flash only firmware less than 15K on the EFM8UB1. It will detect hotplug of the MCU at any time. Press the flash button to write the firmware on the MCU.
The archive also contains a command line version of the utility useful for scripting.

EFM8 Flash Windows

Filed under

Thanks a lot for this tool! It closes a gap in the free toolchain for EFM8 development.

A while ago, I got some EFM8 Bee starter kits, but never got around to using them due to the lack of a free flash tool.

Now that I've learned of this tool, I should port my MCS-51-getting-started-with-free tools tutorials at http://www.colecovision.eu/mcs51/ to the EFM8. I'm also looking forward to doing some benchmark comparisons of the EFM8 vs the C8051 and FX2 (as well as non-MCS-51 ┬ÁC).

How about putting the source code for this flash tool in a public repository, e.g. on SourceForge or GitHub, where users can easily open tickets for feature requests and bugs, and contribute?

P.S.: Another question: You state "EFM8 can currently flash only firmware less than 15K on the EFM8UB1" do you mean that this limitation only applies to the EFM8UB1, but does not exist on other EFM8 devices? Do you mean that only the EFM8UB1 is supported, and this limitation applies there?

The source is now available in github at https://github.com/gorlik/efm8_flash

Regarding the limitations, EFM8UB1 has 16K of flash, but this flasher can only program the first 15K.
I have not tested the flasher with any other Silicon Labs MCU except the EFM8UB1/