Bricking and Recovering FRDM-KL25Z Boards: Reset, SWD Clock and Low Power

I’m working with a student on building a small autonomous robot platform, based on the FRDM-KL25Z board. We integrated new software modules, compiled and linked, and then downloaded the application to the board. While debugging and stepping through the application startup, I had this:

The Debugger has lost communication on connection

The Debugger has lost communication on connection

Outsch! That’s not good. Even worse, trying to connect again to the board failed :-(. What happened?

Continue reading →

Tutorial: Arduino Motor/Stepper/Servo Shield – Part 1: Servos

This post starts a small (or larger?) series of tutorials using the Arduino Motor/Stepper/Servo Shield with the FRDM-KL25Z board. That motor shield is probably one of the most versatile on the market, and features 2 servo and 4 motor connectors for DC or stepper motors. That makes it a great shield for any robotic project :-).

Arduino Motor Stepper Servo Shield with FRDM-KL25Z

Arduino Motor Stepper Servo Shield with FRDM-KL25Z

Continue reading →

Character LCD with 4 Lines

Character LCD’s (like 2 lines with 16 characters each) as in this post are easy to use. Much easier to use compared to full graphical LCDs.

The ones I’m using have either 1 or 2 lines, but I saw that there are 4 line displays too. So far my LCD component only supports one or two lines.

4 Line LCD

4 Line LCD (Source: Ezequiel Bazotti)

Continue reading →

CMSIS-DAP with IAR and the KL25Z Freedom Board

Beside of USBDM, there is another Open Source implementation of a debug interface for the Freedom Board OpenSDA: CMSIS-DAP.

CMSIS-DAP stands for ‘Cortex Microcontroller Software Interface Standard – Debug Access Port’) has been published by ARM Inc. With this, there is an open source alternative to proprietary implementation (e.g. P&E OpenSDA or Segger OpenSDA).
Beside of the ARM MDK IDE, CMSIS-DAP is supported by Coocox and IAR. And IAR is what I’m using in this post.

Continue reading →

Freedom Board with Segger OpenSDA Debug Firmware

Looks like there is some movement on the ‘OpenSDA Front’: After CodeRed has released their RedProbe OpenSDA firmware, now Segger has released an OpenSDA firmware.

With this, I get a low-cost debugging solution similar to the well-known J-Link run control devices. The OpenSDA Segger Firmware is something like a J-Link-lite.

FRDM-KL25Z with Segger OpenSDA Debug Firmware

FRDM-KL25Z with Segger OpenSDA Debug Firmware

Continue reading →

Freedom Track Robot with IEEE802.15.4/SMAC

My other robots based on the FRDM-KL25Z use Bluetooth as connectivity. This one is using a Freescale IEEE802.15.4/ZigBee/SMAC module:

Robot with SRB MC13213 Board

Robot with SRB MC13213 Board as Remote Controller

Continue reading →

Low-Level Coding with PDD (Physical Device Driver)

As with any software drivers: they are never perfect. The same applies to the Processor Expert components delivered in CodeWarrior for MCU10 or the DriverSuite too. That’s why I have created many more components which are available on GitHub here. All these components are using other components to reach the hardware. But what if a functionality is not exposed through the low-level component? Or what if I want direct access to the hardware? Up to now I had to choose either the Processor Expert way, or to do it in the ‘traditional’ way using an SDK like CMSIS or vendor supplied header files.

With MCU10.4, I noticed that there is another way: PDD (Physical Device Driver).

PDD in the Components View

PDD in the Components View

Continue reading →

USBDM 4.10.5 supports now MCU10.4

Wow, that was fast! The SourceForge USBDM project has added support for MCU10.4 (see as well this post) in release 4.10.5 available here, announced in the Freescale Forum.

USBDM 4.10.5 Installer

USBDM 4.10.5 Installer

Continue reading →

Adding/Removing Floating Point Format for S08 Projects

Usually I do *not* use floating point numbers in my projects. For this, I select ‘None’ during the project creation in CodeWarrior for MCU:

No Floating Point Selected

No Floating Point Selected

But what if I need to change my mind later? How to change such a ‘no-floating-point-needed’ project to one with floating point format support?

Continue reading →