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

About these ads

FRDM-KL25Z RevE Board arrived


About a year ago I started to use the FRDM-KL25Z board (RevD). Finally, I had it in my hands: the RevE board from Mouser :-) Using the RevD board, I faced several problems:

  1. 3.3V supply voltage drop because of low-cost diode D1 (see this post)
  2. Hard to use USB host mode, as no 5V supplied to the USB bus (see this post)
  3. No 5V generated from V_IN (see this post)

The good news: all of them have been improved :-) in the FRDM-KL25Z RevE Schematics:

FRDM-KL25Z RevE Board

FRDM-KL25Z RevE Board

Continue reading

Tutorial: Arduino Motor/Stepper/Servo Shield – Part 2: Timed Servo Moves


You have decided: More than 52% voted in Part 1 that the next topic should be Timed Servo Moves. So here we go :-) .

This is about how to move the servos over time, instead of moving it to the given position as fast as possible. I’m using a linear approach here: moving the servos linearly over time.

Moving Servo Motors

Moving Servo Motors

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

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

Fix for 3.3V Voltage Drop on FRDM-KL25Z Board


With my Pololu line following robot I had strange problems with the sensor array: the sensor values were very unreliable. Until I have found the problem: Instead of the expected 3.3V, my FRDM-KL25Z RevD board provided 2.8V instead 3.3V on the P3V3 Arduino header pin:

Measured 2.8V on P3V3

Measured 2.8V on P3V3

And that voltage even was lower the more current I needed :-( . Luckily there is an easy hardware fix for this.

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