Getting Started with Kinetis® KL28 MCU Tower® System Module

Plug It In!

Let's take your TWR-KL28Z72M for a test drive!

1.1 Attach the USB Cable

1.2 Setup Board and PC

With the board plugged in, you’ll then see a disk drive named 'TWR-KL28ZD' enumerated. Download the demo file from the link below, then Drag and drop 'bubble(TWR-KL28Z72M).bin' file into 'TWR-KL28ZD' disk drive. Press reset button (SW1) to initiate the board.

1.3 Run the Out-of-Box Demo

This bubble demo leverages the on board accelerometer. When the board is flat, the color LEDs are turned off, and when the board is tilted, the yellow or red LEDs gradually illuminate based on the degree of tilt on the X- and Y-axis.

Get Software

2.1 Jump Start Your Design with the Kinetis SDK!

The Kinetis Software Development Kit (SDK) is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software.

Click below to download the KL28 SDK package.

2.2 Install Your Toolchain

NXP® offers a complimentary toolchain called Kinetis Design Studio (KDS).

Want to use a different toolchain?

No problem! The Kinetis SDK includes support for other tools such as IAR, Keil and command-line GCC.

2.3 Tool Update

If using Kinetis Design Studio or Arm GCC tool chains, the latest Segger J-Link software tools need to be downloaded and installed. This update is required for those tools to support the KE1x family. Ensure you install this update after installing the IDE of your choice.

First, download the latest "Software and documentation pack" from

Then Install the software and at the end of the installation, there will be a dialog box asking to update installed IDEs. Make sure the KDS 3.2.0 IDE is checked if using Kinetis Design Studio.

2.4 PC Configuration

Many of the example applications output data over the MCU UART so you'll want to make sure that the driver for the board's virtual COM port is installed. Before you run the driver installer, you MUST have the board plugged in to your PC.

With the serial port driver installed, run your favorite terminal application to view the serial output from the MCU's UART. Configure the terminal to 115200 baud rate, 8 data bits, no parity and 1 stop bit. To determine the port number of the TWR-KL28Z72M's virtual COM port, open the device manager and look under the "Ports" group

Not sure how to use a terminal application? Try one of these tutorials:

Build, Run

3.1 Explore the SDK Example Code

The Kinetis SDK comes with a long list of demo applications and driver examples. To see what's available, browse to the SDK 'boards' folder of your SDK installation and select your board, the TWR-KL28Z72M (/boards/twrkl28z72m).

To learn more about demo applications or driver examples, open the readme.txt, located in each of the demo/driver example folder.

3.2 Build, Run and Debug SDK Examples

If one or more of the demo applications or driver examples sounds interesting, you're probably wanting to know how you can build and debug yourself. The Getting Started with Kinetis SDK guide provides easy, step-by-step instructions on how to configure, build, and debug demos for all toolchains supported by the SDK.

Use the guide below to learn how to open, build and debug an example application using the Kinetis Design Studio (KDS) IDE.

Options for OpenSDA firmware:

Using a different toolchain?


4.1 Get SDK Project Generator

Let's create our own project and make a simple SDK-based application. NXP provides an intuitive, simple project generation utility that allows creation of custom projects based on the Kinetis SDK.

4.2 Run the SDK Project Generator

After extracting the ZIP file, open the utility by clicking on the KSDK_Project_Generator executable for your computer's operating system. Point the tool to your SDK installation path, name your project, and select the board that it uses as a reference. Click on the Quick Generate button to finish.

4.3 Open Your Project

Your new project will be located in /boards/towerkl28z/user_apps. Open the project in your toolchain of choice by using the same process described in section 3.2.

4.4 Write Some Code

Now, let's make our new project do something other than spin in an infinite loop. The SDK examples provide a board support package (BSP) to do various things specific to the board, including macros and definitions for items such as LEDs, switches and peripheral instances. To keep things simple, lets make the LED blink using the BSP macros.

Update the main() function in your project's main.c file with the following code:

volatile int delay;

// Configure board specific pin muxing


// Configure clock source


// Initialize the UART terminal


PRINTF("myProject project\n\r");

// Enable GPIO port for the red LED




for (;;)

delay = 5000000;



4.5 Build, Download, Run

With the changes made to your main() function, build your application. Once the build is complete, download the application to your board.

If you need help figuring out how to build, download or run an application, reference your tool-specific guide from section 3.2.

4.6 Success!

With the application downloaded, you will see the TWR-KL28Z72M's red LED blinking. You can also view terminal output using PRINTF.