Saturday, October 18, 2014

Firmware upgrade for mbed FRDM-KL46z device

mbed FRDM-KL46z is a low cost development platform. It is powered by a Cortext M0+ processor running at 48MHz.  It comes with a number of built-in sensors : accelerometer, magnetometer, touch slider,  and a light sensor. The board also contains two leds: green, and red, 4 digits LCD and Arduino-R3 compatible GPIO pins.

Flashing your program on the mbed can be as simple as "drag and drop" due to having its own online compiler and IDE that allows you to write your code and compile it online without requiring you to setup a compiler toolchain on your machine. The output binary file which is downloaded to your machine when compilation completes can be copied into a mass storage device (MSD) drive that appears on your computer when you plug-in your mbed kit, then the mbed status LED will blink for a short time and start executing the most recent binary program you copied into it.

However, when you plug your kit for the first time you might not be able to find the mass storage drive where you should copy the binary files into. This happened for me when I tried attaching it to machines running Windows 8.1, Ubuntu 12.04 and Mac OS X 10.9.5. The reason of this problem is that the kits comes with an old firmware that needs to be upgraded (you need to do this only once) before being able to use with those new operating systems.

Here the steps you should follow to do that necessary firmware upgrade:

  1. Download the latest OpenSDA firmware from here.
  2. Find a machine running windows 7 (The process here didn't succeed when I tried windows 8, and Mac OS).
  3. Start your freedom board into the Bootloader mode by plugging it in while holding the reset switch button marked here.
You can notice a number of files on the "BOOTLOADER" disk. If you open the one named "SDA_INFO.htm" it should open a web page that contains information about the bootloader and firmware versions currently programmed on the board.
  1. Copy the bootloader update file (named "BOOTUPDAETEAPP_Pemicro_vXXX.SDA").
  2. Unplug then replug the freedom board while holding the switch button (to enter the Bootloader mode again).
  3. You can verify that the bootloader is updated by opening the "SDA_INFO.htm" file and noticing the bootloader version number.
  4. Copy the new firmware file you downloaded (named "MSD-DEBUG-FRDM-KL46Z48M_Pemicro_vxxx.SDA" to the "BOOTLOADER" disk.
  5. Unplug then replug the board again without holding the reset switch. You should now find a mass storage disk drive labeled "FRDM-KL46Z" that is where you should copy your binary files to program your board.

Thanks to Amr Abd El-Hafez for pointing this solution. The original post he made can be found here.