RoadTest: Freescale Freedom FRDM-K64F Development Platform
Author: mudz
Creation date:
Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: TI Tiva C TM4C1294XL Launchpad, XMOS SlicetKIT, Raspberry Pi 2 Model B, Beagle Board Black...
What were the biggest problems encountered?: Programming was a bit hard to understand first time. Finding support material was time taking. Making an application on IBM BlueMix.
Detailed Review:
Remember when back in 1984 Macintosh kick started a revolution and changed the world? The Nikola Tesla claiming future belongs to the alternating Current? The cell phone Invention? The Jet Engine? and many more... Wondering where I am going with this? I am talking about the one of the next revolutionary things of the future, and that I can sum it up in these words 'Internet of Things' i.e. " IoT ", though, it's not going to be a big revolution like the one's mentioned earlier but in this age, where we are continuously moving towards more and more digital world, this is going to mark its presence in future. Internet of Things Intelligently connects humans, devices and systems. This is why many big Tech Giants are attracted towards IoT's and making their efforts to shape the future. Such is a case where tech giants: IBM & Freescale (not to forget ARM) collaborated and made a development platform named "ARM mbed IoT starter Kit" (Freescale Freedom FRDM-K64F development platform).
Quick Introduction about FRDM-K64F or ARM mbed IoT Starter Kit:
This starter Kit for IBM IoT Foundation provides the user with a slick experience, getting data from the on board sensors into the IBM cloud within minutes of opening the box. It is particularly suitable for developers with no specific experience in embedded or web development, as it provides a platform for learning new concepts and creating working prototypes.After the initial out of box experience, the infinite possibilities of cloud applications can be explored through IBM's production grade BlueMix platform, in which deployment and device management is as simple for one device as it is for one million. The starter kit hardware can be modified and extended to explore the device design space, and a finalised design can be taken to production using the mbed SDK and HDK.
This Starter Kit consists of two kits: FRDM-K64F Development Platform & mbed Application Shield.
FRDM-K64F is an ultra-low-cost development platform for Kinetis K64, K63, and K24 MCUs. The FRDM-K64F hardware is form-factor compatible with the Arduino™ R3 pin layout, providing a broad range of expansion board options. The FRDM-K64F is feature packed with a lot of peripherals to enable rapid prototyping, including a 6-axis digital accelerometer and magnetometer to create full eCompass capabilities, a tri-colored LED and 2 user push-buttons for direct interaction and feedback, expansion memory with a microSD card slot, and connectivity options using onboard Ethernet port and headers for use with Bluetooth and 2.4 GHz radio add-on modules. The FRDM-K64F platform features OpenSDAv2, the Freescale open source hardware embedded serial and debug adapter running an open source bootloader. This circuit offers several options for serial communication, flash programming, and run-control debugging.
Mbed Application Shield This application shield has been designed to enable the maximum number of potential experiments with Arduino form factor development boards, keeping as much in common with the mbed application board as possible. Features of both the Kits are mentioned below:
Kit | Features | |
---|---|---|
FRDM-K64F |
Mass storage device (MSD) flash programming interface CMSIS-DAP debug interface over a driver-less USB HID connection providing run-control debugging and compatibility with IDE tools Virtual serial port interface Open source CMSIS-DAP software project
| |
Mbed Application Shield |
|
Unboxing & Running First Program on ARM mbed IoT Starter Kit:
Package:-
The package I recieved was in good condition. It was a big Yellow courier box & inside it there was a bubble wrap bag. Opening this bag revealed a little white box, resting peacefully there. This Little box describes the Kit as ARM mbed IoT Starter Kit and Ethernet Edition for IBM Internet Of Things Foundation is mentioned just below it.
Inside this white box there is a black plastic platform which was holding the two blue kits. These kits were packed in anti-static plastic bags. USB cable was placed just below this plastic platform. A small paper card inside the box describes how to Getting Started with this Kit.
Unboxing:
1. Courier Box 2. Bubble wrap bag containing Kit 3. ARM mbed IoT Starter Kit Box
4. FRDM-K64F platform with mbed Application Shield 5. USB Cable
6. Freescale Freedom FRDM-K64F Development Platform 7. mbed Application shield
Getting Started(Running Demo Program):
The ARM mbed IoT Starter Kit comes preloaded with a demo program, The demo program is an example to show what this small kit (size of a credit card) can perform.
Take these steps(mentioned below in the picture) to get started with this board:
Within a few seconds the light on your starter kit should have lit up green, and the status on the LCD screen should be "connected"
You should see a drive appear on your computer, which contains a file called "IBM.htm" - double click this to open it in a browser or Open http://ibm.biz/iotqstart and enter your device id(scroll down with joystick to get your device id). You should now be seeing the data being sent from your starter kit.
Here are screenshots of sensor data being sent by the Kit to the IBM cloud:
Overview Chartview
Firmware FRDM-K64F:
First thing is to check the firmware of the Starter kit. The latest firmware version for the FRDM-K64F is: 0221
To check your firmware version:
- connect Starter Kit with pc using USB cable. The status light will glow, indicating it has power. After a few seconds of activity, the PC will recognise the mbed Microcontroller as a standard USB drive(MBED).
- Open DETAILS.TXT/ibm.txt if present on this MBED drive.
- If not present, open the MBED.HTM file on your mbed microcontroller with a text editor.
USB Drive as MBED ibm.txt showing firmware version: 0204
Firmware Update:
Follow this link to upgrade firmware on Starter Kit: Firmware FRDM K64F - Handbook | mbed
After Update:
Drivers Installation:
Connecting Starter Kit to pc via USB cable shows MBED. Your mbed Microcontroller can appear on your computer as a serial port. On Mac and Linux, this will happen by default. For Windows, you need to install a driver from here: Windows serial configuration - Handbook | mbed.
Without drivers With drivers
First program(mbed):-
Online Complier:
To experience Free access to the mbed online compiler, mbed C/C++ SDK and developer community, visit: FRDM-K64F | mbed
Click on compiler (On the top right corner of this page) and login/sign-up to get free access to mbed online compiler.
Now you can import programs from Import tab and compile that program to get a .bin file. To download this program on the Mbed enabled starter kit, send this .bin file to the MBED drive and within few second .bin file will get downloaded to the kit.
Example image Shows online mbed compiler with many program imported on my program workspace. I have compiled that program and the online compiler has created a .bin file which we can save on the pc and download that .bin file on the kit.
First Program(KDS):
We need to get rid of the mbed bootloader, if we want to debug programs in C language on Kintetis Design Studio Integrated Development (KDS). We will be using J-Link Firmware instead for using debugging feature on KDS.
How to replace the mbed bootloader with J-Link Firmware:
Creating a project in KDS:
Add a Processor Expert component
for(;;){
LED_Clrval();
LED_SetVal();
}
13. save the file and click the "hammer" icon to build the project.
Run new program using debugger:
Application: Testing of ARM mbed IoT Starter Kit for Home automation/smart homes.
AIM: To establish a connection between IoT starter Kit and Internet enabled Modem via AirGrid Modules.
Working: Yes !
Components Required: IoT Starter Kit, Two AirGrid M5-HP, Ethernet Cables, POE.
Details:-
We will be using demo program which comes preloaded to the ARM mbed IoT Starter Kit for this review.
Demo Program- This example code connects the mbed FRDM-K64F devices to the IBM Internet of Things Cloud service via ethernet. Connect an ethernet cable(one end is connected to internet enabled modem) to this IoT Starter Kit and it will try to connect to IBM IoT cloud. If the connection is established successfully the RGB led on mbed application shield will turn Yellow to Green otherwise Red led will glow showing that either internet is not connected or there is some problem in connections. If connection was unsuccessful, it will wait few seconds and then it will turn to yellow again which implies it is trying to establish the connection again.
Also if connection is established we can check the sensor readings from application shield to IBM cloud. So our aim is to get green led and check the IBM cloud for readings coming from sensors on board shield.
First we need to establish a connection between two AirGrid Modules. This is done by configuring one AirGrid M5-HP module as Station and the other one as Access Point.
Yellow Circled: Access point Orange: Station
Led's showing Connection is not established(station side) Led's showing connection is established and strength of signals(Station)
When the connection between two AirGrid Modules is established, these two modules provides a direct connection to internet (without the need of ethernet cable for long distances). Connect the Internet enabled Ethernet cable(from modem) to Station Airgrid M5-HP module and at the Access point end, connect ethernet cable to the IoT starter Kit.
Results:
Connection is not established or Internet not working Connection is established and Internet is Working
Mbed Application Shield Sensor Reading on IBM Cloud:
Full details on this test is given on this blog here.
Conclusion: This test shows that for Home Automation/Smart Home or similar type of applications we can use this IoT Starter kit as we have replicated the similar conditions which need to be done for home automation. for example, we have replicated any sensor reading to this kit which can be watched over Internet and required actions can be taken like giving input to the kit to perform some task. Also, we just watched a case where we do not have Internet access to some place, say a distant place, where our IoT starter Kit is working, taking inputs from many sensors and giving live feed to Internet via AirGrid Modules. So this test is a Success.
Application: Interfacing a 5" TFT LCD and test a small game on it.
A small Game using FRDM-K64F Platform & TFT LCD
AIM: To interface a 5" TFT LCD with touch controller to FRDM-K64F Platform and play a small game on it.
Working: No
Components Required: IoT Starter Kit, 5" TFT LCD with capacitive touch screen, 19.2v power supply for LCD backlight, breakout board for 40 pin 0.5 pitch LCD connector, Breakout board for 6 pin 0.5 pitch Capacitive touch Screen.
Details:-
I was not able to complete this experiment for two reasons:-
1. I previously had a small TFT LCD but the connecting flex cable got teared up making it useless, so I ordered a new 5" TFT LCD from this site: 5"TFT LCD Display Module WVGA 800x480 High Resolution for MP4,GPS. LCD took about one and a half month to get delivered here. Very poor delivery service by this chinese LCD seller.
2. I said okay, I have a little window to make a small game program and I started making PCB for the same. Then only I noticed that I have ordered a TFT LCD with RGB interface. The problem with this Starter Kit is that the target board does not have support for RGB TFT LCD. To interface this LCD with the Kit I need minimum three 8-bit ports, but the Kit does not offer a single complete 8 bit port to configure them to work as a whole 8-bit port.
I will keep on trying to interface this LCD with the kit.
Result: Failure.
Conslusion: A TFT LCD (with RGB interface) cannot be interfaced directly to this Starter Kit.
So, What's your Pick?
Kits→ Features ↓ | Texas Instruments | XMOS | Raspberry PI 2 Model B | Beagle Board Black | FRDM-K64F ARM mbed IoT Starter Kit |
Price | $19.99 | $149 | $35 | $49 | $120 |
Clock Speed | 80 MHz | 500 MHz | 900 Mhz | 1 GHz | 120 MHz |
Processor | Tiva C Series TM4C1294NCPDT ARM Cortex-M4 | XMOS XS1-L16A-128-QF124 | Broadcom BCM2836 ARMv7 Quad Core Processor | AM3358 ARM Cortex-A8 | MK64FN1M0VLL12 ARM Cortex-M4F |
RAM | 256KB SRAM | 128KB SRAM | 1GB SDRAM @400MHz | 512MB DDR3 (800MHz x 16) | 256KB |
Ethernet | Yes | External | Yes | Yes | Yes |
RF(2.4GHz) | External | External | External | External | Support |
Bluetooth | External | External | External | External | Support |
Display | Support | External | Support | Support | External |
HDMI | No | No | Yes | 1 Micro-HDMI | No |
USB Port | No | No | Yes(4) | Yes | Micro USB Type B |
Camera | No | External | Support | Support | No |
SDHC Slot | No | No | Yes | Yes | Yes |
Audio | No | External | Yes | Yes | Yes |
Sensors |
External |
External |
External |
External | Temperature, Accelerometer, Magnetometer, Potentiometer, Joystick |
GPIO | Yes(2x 40-pin [XL]) | Yes(84) | Yes(40) | Yes(65) | Yes(43) |
Mbed | No | No | No | No | Yes |
Supported Interface | 10x I2C, 8x UART, 4x Quad-SSI 2x 12-bit ADCs (2MSPS) PWM, External Peripherals, Memory Interface | Multi UART(8), 20 timers, xTAG2 debug adaptor, JTAG adaptor, PSU | DSI Display Port, Dual Core VideoCore IV® Multimedia Co-Processor | 4x UART, 8x PWM, LCD, GPMC, MMC1, 2x SPI, 2x I2C, A/D Converter, 2xCAN Bus, 4 Timers | SPI (3), I2C (3),I2S, UART (5), USB OTG/ Host/Device, USB regulator, PWM, ADC (2x 16bit with mux), DAC (12bit), GPIO, Comparator, CAN |
Support: On board support/connectors are available External: GPIO pins are available, can be interfaced but support is not available
Few thoughts on ARM mbed IOT Starter Kit:
How easy is to find the material for this Kit?
Literally, I have to visit many sites, read many documentation to gather the information and to use the features of this Starter Kit. I will be adding most of the links here below. Documentation felt incomplete to kick start programming with such features mentioned for this mbed starter Kit.
How easy is to program this kit?
Alright, Programming was confusing at first as we need to change the firmware to program it via KDS but with the online mbed compiler it becomes a bit more interesting. What is mbed? Lets read the following lines from mbed SDK is now Open Source! | mbed :
“The mbed Software Development Kit (SDK) is a C/C++ microcontroller software platform already relied upon by tens of thousands
of developers to write code for ARM microcontrollers. It has always been free for commercial and noncommercial use, but this latest
release under an open source license will extend its applicability further to be relied on in more commercial, open source and
educational projects.”
In short it a powerful, free(open source) software to program ARM based devices online/offline with support for multipule microcontrollers & toolchains. Login to your online mbed compiler, Import or create a new program with pre built libraries or edit example codes and compile it. Also, it’s easy to publish your codes directly on mbed developer community with just a single click.
With KDS, it was a little hard to program but you can choose Processor Expert to easy your task while creating new project.
Can we use this mbed Application shield with another kit?
Yes, but I have not implemented this yet but it can be connected to any other development kit with the little help of a custom made PCB interface to make it pin compatible with other Kit/board.
Is there some more space left to add few more things?
FRDM-K64F: It's a great IoT starter kit with such features and its just of a size of credit card. It is tightly packed with small IC’s, SMD devices(Capacitors, Resistors, Crystals etc.), Headers, Connectors. If you take a close look at this beauty there is literally no room left for any other thing to place on it. But using it for a while(speciafically for home automation) I strongly felt a need of a small microphone and In my opinion a small condenser can find its place on this board. For Applications like smart home or home automation or similar kind of applications this small addition would be a great thing.
Mbed Application Shield: FRDM-K64F is totally packed but this application shield has space left and few more things can be added to it like motor driving IC, Sensors, buttons, or a small microphone?
Although, it is mounting enough sensors and surely the Kit is tightly packed but few more additions could be possible on this Starter kit.
Pricing .. good enough?
No, I strongly DISAGREE with this price tag ($120 in US, ~176$ in India). It’s just not right. Why?
Alright, let’s take a look over similar type of kits in market. If we compare it with other kits like raspberry pi, beagle board etc. which offer much more features with powerful processors this kit should cost less than that or near that kit but it’s almost double the price. Also if we consider simple IoT Kits like Texas Instruments CC3200 SimpleLink Wi-Fi LaunchPad or CC3200MOD-LAUNCHXL LaunchPad these Kits have less features but we can always add sensor board to it and still get low priced kit to kick start with IoT thing. And not to forget FRDM-K64F alone costs very cheap. Yes, these kits are not mbed enabled yet, but future possiblity is that we can get this feature anytime soon because they got the ARM.
So why is this bundle so costly? Just for Mbed Application Shield or is it about IBM Bluemix cloud integration? But If Starter Kit is being sold at this price tag, it must have some premium feature to attract developers, like it should come with a minimum 1 Year of free IBM Bluemix service (or at least for 6 months).
In my opinion, it should not be priced more than $80 ($30 - $50 would be better).
Does it really boost the things to test features like smart homes or smart city or other IoT prototypes?
I think yes, apart from testing few things I don’t think it will be suitable for applications which uses large amount of data over internet like camera feedback or to drive TFT’s. This Kit is more like a Introduction to the IoT world, just like we used 8051 Kits to understand this embeded world(many will say I have used basic PIC, AVR etc. but the point is its all basics).
Can we connect it with internet to watch videos or stream live content?
Not tested, but i think we have to wait for that. Microcontroller is not that much powerful to stream data over internet and if we are talking about connecting a TFT with this kit and watching a video on it, we are overestimating this Kit. Connecting a Camera and watching its live feed is beyond its capabilities. Come on, Its just a Starter Kit but the Future is bright.
What more to come(Future Upgrades)?
We may find much more powerful ARM Microcontroller for future updates on this kit or it might be a ARM Processor with RAM. Point is this is a basic starter kit to work on IoT and we need much more processing power to drive TFT's or Cameras. I am talking about TFT's and cameras because nowadays, these are the most common things we use to automate our home.Future Upgrades might include a powerful ARM Microcontroller/Processor, RAM, On-board Flash Memory, USB ports, HDMI, Wi-Fi(802.11b/g/n),
Details | Links |
---|---|
Introduction on ARM mbed IOT starter Kit: 1 ARM Mbed developer website 2 IBM developer Website | 2 https://developer.ibm.com/iot/recipes/arm-mbed-starterkit-ethernet/ |
Introduction on FRDM-K64F 3 Freescale 4 ARM mbed developer Webpage |
3 http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FRDM-K64F |
Introduction on Mbed Application Shield 5 ARM mbed Developer Webpage |
5 https://developer.mbed.org/components/mbed-Application-Shield/ |
Compilers 7 Kinetis Design Studio Integrated Development Environment (IDE) |
|
8 Windows Serial Drivers | 8 Windows serial configuration - Handbook | mbed |
Firmware 9 Mbed Firmware Upgrade 10 J-Link debugger |
|
Pin Out 11 FRDM-K64F 12 mbed application shield |
|
Documents 13 FRDM-K64F |
|
Cookbook 14 mbed |
|
Quickstart demo program 15 IBM IoT foundation |
15 http://ibm.biz/iotqstart or https://quickstart.internetofthings.ibmcloud.com/#/ |
Helpful Links 16 J-link Firmware upgrade 17 ARM mbed IoT Starter Kit Recipes (Part 1) 18 ARM mbed IoT Starter Kit Recipes (Part 2) |
16 Segger J-Link Firmware for OpenSDAv2 | MCU on Eclipse 17 https://developer.ibm.com/iot/recipes/arm-mbed-starterkit-ethernet/ 18 https://developer.ibm.com/iot/recipes/arm-starter-kit-part-2/ |
Top Comments
Great review, I liked your reference table at the end, it's good to have these handy links in one place.