The FRDM-KL25Z “Freedom” development platform is an extremely inexpensive development board with a Kinetis KL2 Family 32-bit ARM®CortexTM-M0+ MCU . The Kinetis L-Series MCUs promise true 32-bit performance at the price and power consumption of an 8- or 16-bit MCU.
Freescale and I tried to travel in time and present this review before the official launch last Tuesday. However, it turns out that the snail mail is not yet compatible with time travel. But the board is finally here, so let’s do it!
Please note that I am using a pre-production board for this review and the actual production board may slightly differ from this one.
Overview and Tech Specs
Before we jump right into the review, let’s have a look at the key features of the Freedom (FRDM-KL25Z) development kit. The board comes with a KL25Z128VLK4 MCU. The KL25Z128VLK4 is a Kinetis KL2 Family 32-bit ARM®CortexTM-M0+ MCU with quite a bit horsepower for such a small board. Here are the tech specs for the development board:
- KL25Z128VLK4, Freescale’s ARM Cortex-M0+ based Kinetis L-Series MCU with:
- 128 KB Flash
- 16 KB SRAM
- 64 B Cache
- Maximum CPU Frequency: 48 MHz
- Real Time Clock (RTC)
- 4 Channel DMA
- 12-bit DAC
- Analog Comparator (6 inputs)
- USB full-speed controller
- Low Power UART
- 2 x UART
- Capacitive Touch Sensor (16 Channels)
- 66 GPIOs
- 23 GPIOs with Interrupt
- OpenSDA–sophisticated USB debug interface
- Tri-color LED
- Capacitive touch “slider”
- Freescale MMA8451Q accelerometer
- Flexible power supply options
- Power from either on-board USB connector
- Coin cell battery holder (optional population option)
- 5V-9V Vin from optional IO header
- 5V provided to optional IO header
- 3.3V to or from optional IO header
- Reset button
- Expansion IO form factor accepts peripherals designed for Arduino™-compatible hardware
The FRDM-KL25Z evaluation board can be pre-ordered from Newark and is advertised for an incredibly low price of just 3.85 per piece from the same distributor. I personally hope that Expansion IO for Arduino™-compatible hardware will convince some Arduino / AVR-fans that the jump to a 32-bit ARM architecture is not at all out of their league.
My board came in a pre-production packaging and is therefore not representative for the production units. However, here are a few pictures:
The board is really compact. A little bit larger than a credit card, maybe. On the left side are the two USB Mini-B type connectors. The top one is connected to the MCU and the bottom one is used to flash the MCU and for the OpenSDA, a sophisticated USB debug interface. The expansion header seen here on the top and the bottom of the picture is not installed on the currently shipping development boards.
Just like the expansion IO header, the CR2032 battery holder in the top right corner is not installed in the KL25Z version currently shipped by the distributors. I heard several people complain about this but I only partially agree. If you really need the battery holder and the IO header, go ahead and order the parts together with the board from your manufacturer. You will have to solder them in yourself but it should only take a minute.
Before we can connect our hardware, we need to download and install the >Windows USB Driver OpenSDA Support< from P&E Micro Systems v11_120720 or later. The software is available for free and without an annoying registration form .
Next, there’s a bunch of files on the element 14 server that will be needed sooner or later. I recommend downloading all the files and extracting them to a known location. The files are available from  after registration and log-in.
The >WINDOWS DEVICE DRIVERS.zip (1.7 MB)< contains the Windows drivers that Windows might ask for when the board is connected to the PC for the first time.
When the board is connected to the PC for the first time (2nd USB connector, bottom left), the “Windows Driver Installation” dialog will pop up and attempt to install 4 devices. A USB Composite Device, a USB Mass Storage Device and a Freescale MSD USB Device (which should all install automatically) and an OpenSDA – CDC Serial Port (requires driver). The installation of the OpenSDA – CDC Serial Port will require a driver from the >WINDOWS DEVICE DRIVERS.zip (1.7 MB)< file. Just tell Windows the location of the extracted files and let the PC pick the right file(s). The driver for the OpenSDA – CDC Serial Port is also available on the board itself.
Programming the Microcontroller
The Freescale FRDM-KL25Z development board comes pre-programmed with a very nifty OpenSDA MSD Flash Programmer application. This piece of software is simply awesome. When the board is being connected to the PC using the OpenSDA USB port, the device will act like an external USB drive. The drive will identify itself as “FRDM-KL25Z”.
In order to transfer a program to the MCU, all one needs to do is copy the corresponding S-record file (.s19 or .srec) “FRDM-KL25Z” drive. That is all! No special software, no hidden secrets, nothing.
The files mentioned in the software section contain numerous different demo programs. To try them, simply copy the .srec file of the demo program onto the FRDM-KL25Z board as described above.
Here’s a short YouTube clip I shot using the demo programs >changy_rgb.srec< and >accellero_i2c_rgb.srec<:
Links and Sources:
 Kinetis KL2 Family, Freescale http://www.freescale.com/
 FRDM-KL25Z – EVAL BRD, Newark http://www.newark.com/
 MKL25Z128VLK4 MCU, Newark http://www.newark.com/
 OpenSDA Support, P&E Micro Systems http://www.pemicro.com/
 Element 14 Freedom Community http://www.element14.com