Monthly Archives: January 2016

Changing to mbed firmware on FRDM-KL25Z using Windows 10

I have a couple of projects where I want to use the ARM mbed platform on the inexpensive  FRDM-KL25Z board, which features the Freescale Kinetis KL25Z ARM Cortex-M0+ processor. This requires a firmware update on the board and I have done this previously without trouble while I was still running Windows 7. Now however, I have moved to Windows 10 and this caused a bit of trouble.

This post describes the problems I ran into and how I solved them. In essence, I was forced to use a computer running Windows 7 to do the actual update.

Failed attempt

The firmware upgrade process is described on this page. While there are some hints on that page that the upgrade might not work if the host computer runs Windows 8 or Windows 10, this is not entirely clear, so I tried it anyway. This is what I did and what happened:

  • Download the 20140530_k20dx128_kl25z_if_opensda firmware file (a zipped .s19 file) and unzip it.
  • Hold down the reset button on the FRDM-KL25Z board while plugging in the USB cable in the right (SDA) USB connector.
  • The board now appears as a disk called BOOTLOADER.
  • Drag the .s19 file to the BOOTLOADER disk.
  • Unplug and replug the FRDM-KL25Z.
  • If everything had worked as it should, the board would now have shown up as a disk called MBED. What instead happened was that the computer did not at all react to the board. No disk showed up.

Reading a bit more on the firmware upgrade page and in the discussions at the bottom of the page, it seemed like there was no way forward using only a Windows 10 computer.

Successful attempt

The reason it did not work with Windows 10 seems to be that my FRDM-KL25Z board had too old bootloader firmware. It has to be 1.11 or higher to work on Windows 10 (or Linux and Mac it seems). To check the bootloader version, one can hold down the reset button while plugging in the USB cable into the SDA port. This makes the board show up as a BOOTLOADER disk where there is a file called SDA_INFO.HTM. Double clicking on this file brings up a web page that says among other things what the bootloader version is. In my case it was 1.09.

To remedy this, the following steps are required:

  • Get hold of a computer running Windows 7 or Windows  XP.
  • Hold down the reset button on the FRDM-KL25Z board while plugging in the USB cable in the right (SDA) USB connector.
  • The board now appears as a disk called BOOTLOADER.
  • Download a new OpenSDA bootloader firmware from PE Micro. This requires some form of registration and giving out an email address, but is otherwise free.
  • Unzip the downloaded file.
  • Unzip the OpenSDA_Bootloader_Update_App_v111_2013_12_11.zip (or similar) file from inside the big zip file.
  • Drag and drop the resulting BOOTUPDATEAPP_Pemicro_v111.SDA (or later version) file to the root directory of the BOOTLOADER disk.
  • Unplug and replug the board to initiate the bootloader update. This typically takes just a few seconds.
  • Once the update is complete the board will automatically reappear as a disk called BOOTLOADER.
  • Double click on the SDA_INFO.HTM file in the root directory of the BOOTLOADER disk to see that the bootloader version now is 1.11 (or higher).
  • Drag the 20140530_k20dx128_kl25z_if_opensda.s19 (or whatever the latest version of the mbed firmware is) to the BOOTLOADER disk.
  • Unplug and replug the board. It should now show up as a disk called MBED.

After this, the board showed up as a disk called MBED and worked on Windows 10.

To upload and run a .bin-file (the output of the mbed online compiler) to the board one drags the .bin file to the MBED drive and then presses reset on the KL25Z board.