Thursday, September 20, 2012

Thoughts on Microcontroller Platforms Types

I work for a semiconductor company and work with making/distribution of hardware development platforms.
As a semiconductor company, we sell silicon. However, silicon on it's own doesn't do very much-- so we have to develop methods to show-case the functionalities of the silicon. One of these methods is through  a tool platform/ tool chain.

These are some of my thoughts on the development of a perfect tool chain to evaluate microcontroller silicon chips.


Types of Platforms:
I want to begin this with looking at the different types of platforms that are available today.
Because my experience is with TI micro controllers, the majority of what I am speaking to has to do with the observations around these platforms.
You can take a look at what platforms I am speaking to by going to the TI estore and looking at the micro controller offerings.

I propose that these tools fall into four main categories:

These are categories that I have assigned based off of my experience with the different types of functionality and their relative position in the design cycle. Mostly focused on the end customer's behaviour.

What do I mean about end customer's behavior?
I am going to use the perfect customer as my example case.

Taking each of these segments into account... we get

in terms of micro controller evaluation...
Demoing what is possible to define requirements
Evaluating capabilities and required resources for planning purposes.
Executing on the development.
Delivering a product for production and distribution.

Demo Platforms- 
Purpose: Platforms that are made to catch someone's attention. 
Uses: Trade Shows, Sending these to media... show casing a particular functionality. 
Primary Characteristic: "Cool Factor". This needs to be the most "product centric of all of the kits. These kits could almost be a complete product on it's own. 
Best Practices: A STRONG and easy out of box experience. It needs to be quickly relatable to the lay-man or the new engineer. The better the out of box, the better the demo. 
Size also-- make this so it's portable and easily shown (tactile) versus being complicated and needing a lot of engineering to get it to work. It's about making it as relatable as possible. 

Opinion:  I almost would put these kits as whetting appetites. If it's designed correctly it gives the user the incentive to go and "pop the hood". The best ones allow a degree of customization without forcing the user to have to enter a full-blown development process.  

Here are a few of my favourite examples:

Absolute Favourite: MikroElektronika's MikroMedia using the Stellaris M3 board!

TI's EZ430-CHRONOS Watch and the Stellaris MDL-STEPPER that runs a Stepper Motor right away. 

Evaluation Platforms- 
Purpose: Platforms created to be able to enable a user to evaluate the chip set. 
Uses: Introduction to development environments, first entry point, get familiar with a product set. 
Primary Characteristic: This should be the "user experience" or the barrier to entry. 
Best Practices: To have the lowest business barrier of entry (cost), size (convenient) and to allow the user to expand the platform's abilities and grow with the user's skill.

Opinion: This is the most important kit of all in my opinion. This kit is an introduction to the product line. The best kits are about-- enablement. The entire design of the kit should be about enabling the user to 1.) learn the product and 2.) get going on the product. Because these kits should be designed to follow the user development-- it should be well designed to create incentives for the user to upgrade or add functions. 

Borrowed Image of the MSP430 Launchpad.

The best kit that has achieved this I've worked with is the MSP430 Launchpad. 
First, TI has taken away all of the business cases to why you wouldn't evaluate the MSP430. 
The platform is cheap, it's less than 5.00! Who wouldn't try something out for that. 
All of the hardware required is included (on-board emulation and debug). 
There is a development environment that is free and fully featured that comes with the kit. 
There is also a development environment that is good for a beginner. 
As you grow with the platform, you can change the centre chip out for larger function chips, or it can have functionality added with BoosterPacks. It's entirely where the user wants to take the platform. 
(Where this kit could use a lot of improvement is really on the transition of it's users from the layman to expert. Today there is a severe learning gap between new users and experienced users, but this is getting improved!). 

Here are some other Evaluation Kits that I like:
Predecesor to the LaunchPad. The EZ430 USB Tool.
CC3000 evaluation on the MSP-EXPFR57xx board (FRAM Development Board)

The two major themes of these kits is User experience and enablement.

Development Platforms- 
Purpose: Platforms that are about delivering the full capabilities of a particular chip set. 
Uses: Chip Development 
Primary Characteristic: Full access to all of a chip's abilities and possible re-use for other chips. 
Best Practices: Re-use and giving complete access to a chip (e.g. pinning out all of the pins)

Opinion: This should be a kit that can be seen as an investment, but an investment that should only be made once. 
This is a kit that should be used by an experience user and focused on the development of a microcontroller project. These kits should be very prototype-able. 

The MSP430-U boards, a ZIF socket that can take any of the same packaged MSP430 Chips and all of the pins pinned out to the edges of the board.

The MikroElektronika Easy MX ProV7 for Stellaris

Production Platforms- 
Purpose: Platforms to help with production once development is done.
Uses: To mass-program chips, anything to aid with production. 
Primary Characteristic: usefulness! 
Opinion: Unfortunately I don't work enough with this segment of the business to have a strong opinion yet.  However, I speculate the primary use of this would be to enable production to be the easiest possible. 

MSP-GANG430 Programmer for programming multiple MSP430 Devices at once.

Thoughts on the perfect Platform- 
After looking at all of the platforms, a lot of platforms overlap each of the categories. 
This should be encouraged and expected, but just like any all-in-one kitchen tool... there are always sacrifices that have to be made. e.g. if you wanted to use the CHRONOS Watch as a development platform... you can't get to all of the pin-out of the CC430 chip on board. That would prove to be irritating if you were trying to make a product that didn't do just a form factor of the watch. 

I would love to be able to take the first three platforms and create a type of ecosystem. 

What I would love to see:

Using a LaunchPad + A BoosterPack we would create the perfect Demo Platform
Demo Platforms get people's attention:

LaunchPad + BoosterPack

Once you have someone's attention then they can go to evaluate the platform:
Evaluation with the MSP430-Launchpad

Advantages of making this the same platform as your demo platform is having an example to work off of. This keeps the application in mind. 

When you run out of capability, I would love to see the LaunchPad be able to plug into a board like the MikroE MX Pro v7

This allows the user to expand capabilities from a place of familiarity. 

When the capabilities of the LaunchPad Evaluation run out, then they can replace the socket with one of the Chip Socket Boards!

Taken from the MikroE User guide showing the card replacement.

The general idea is to allow the user to pace themselves through the development cycle on thier terms. (Just think about all of the times that I hit "IGNORE" when I get requests to upgrade software).
By allowing the user to decide when to move to a different platform you don't have to market as hard, the user is already bought into the value proposition (why would they move if they didn't need to) and they have a knowledge base that can be expanded upon (versus having them re-learn and figure out new connections).

So, that's what I would love to see...
An exciting, expandable, fully featured, evolving ecosystem centered around the user's comfort level. 

No comments:

Post a Comment