Encoder Front Page
SRS Home | Front Page | Monthly Issue | Index
Google
Search WWW Search seattlerobotics.org

Designing a new controller board

Kevin Ross

kevinro@nwlink.com

I started to document the steps involved in creating a new controller board. (Check out part two) I am continuing the subject this month. I wanted to let you follow along in all the steps I am taking to create this board. It consists of both the good and the bad. This month, we have good news!

Talking to the Experts

Last issue, I left you hanging waiting to see if I was going to get any answers from Motorola about the availability of the 68HC912D60 cpu. If you recall, this is a cool processor that has 60k of onboard flash for program space, 2k of onboard RAM, more I/O pins than you can shake a stick at, and is already supported by free and inexpensive tools that are produced by SRS members. The issue was that I couldn't find any for purchase, nor could I get a reasonable explanation as to why.

I called my local Motorola representative asking what the story on the D60 availability. Turns out that there is good news and bad news, but mostly good. The D60 in its current form is a short timer. It is to be replaced by the D60A. The current D60 requires 12v of Flash Programming Voltage. The new D60A will only require a 5 volt supply, removing the extra power supply. This is great news for the future. The projected release date for the D60A is late summer of 2001. In the mean time, we can design with the D60, as it will be pin compatible with the D60A. It also turns out that the 68HC912DG128 is pin compatible with the D60, which means if desired, we could slap a 128K of Flash version of the HC12 on this same board. 

I was also able to get ahold of parts through one of the major distributors. I now have in my inventory about 40 of the D60 version of the chip.

The lesson learned here is when in doubt, find out who your local representative is and call.

The Design Process

Ok, so I have done some homework, and have decided that the HC912D60 is the chip I would really like to use. At this point, I have a bunch of chips, and a few ideas, but nothing really to show for it. I am now committed (by about $500 worth of chips!) to building this new board. There are many steps that need to be done. These are the same steps that almost any engineering project has, no matter if it is a PCB, a software project, or some other widget.

  1. Determine the features and requirements for the board
  2. Ask others for their opinions about the feature set
  3. Design a schematic for the board
  4. Ask others for their opinions about the schematic
  5. Make a layout for the board to match the schematic
  6. Ask others for their opinions about the board layout
  7. Generate a set of gerber files and drill files
  8. Review the gerber files using a tool called GC-PREVUE
  9. Have a prototype of the board made and built up
  10. . Test the prototype for functionality
  11. . Generate the final set of gerber files
  12. . Send the files off to the board house for production
  13. . Put the product on my website and hope someone will enjoy them.

I would like to point out steps 2, 4, and 6. These are three critical steps that often times can save you time, money, and grief. Find a friend or two who are technically competent and would would be interested in helping you with your project. This part of the design is called a peer review or design review. Before you get to step 7, the only thing you have invested is time. Others are likely to have opinions that differ from your own, and their input can be extremely valuable. They will help you by noticing many errors, pointing out that you should have done something differently, or even to tell you that your design needs to be scrapped and started over.

Personally, I have several small groups of about 3 people who I run most of my design work past. For example, Karl Lunt, Marvin Green, Tom Dickens, and myself did this with the BotBoard Plus design. I have other teams for other types of designs. For each design, I try to select people who I trust have some technical knowledge or experiences that I feel are better than my own.

Pre-Thinking about features

As I work on my feature list, lots of different ideas flow through my head, are evaluated, and sorted into a priority list. When you design your own board, you will be full of self doubt about which features are important, and which are not. Self doubt is quite normal and just part of the design process. Here are a few things to think about while working out the feature list.

I like to think I am a pretty decent engineer. As such, I can make systems just as complicated as you can imagine. I have illusions (delusions might be more appropriate) about making an all singing, all dancing controller board that is the ultimate board that will handle everyones needs.

However, I am also an experienced engineer. I know that whatever I come up with, you are going to want something slightly different, or won't want most of the features I put on board. As such, I have always tended towards a minimal, low cost board that is flexible enough for others to modify. I would like, however, to put enough of the common bells and whistles on-board to make my board enticing enough to use. There is a delicate balancing act here.

The other issue is cost. A full blown really cool expanded memory board with real time clocks, motor drivers, display drivers, and an onboard speaker sounds fun, but is likely to be expensive to make, which makes it expensive to buy. I am thinking about selling these kits to students and hobbyists, so budget is always a concern here. I also don't want to shell out thousands of dollars on boards that people don't want.

Another issue is kit vs assembled. I personally like to produce products in kit form. Therefore, whatever design I come up with, I need to insure that people with somewhat limited skills will be able to solder up this board.

There are other little gritty details I keep in the back of my head. For example, I want to try to use parts that I already have in inventory for my other kits. Switchs, connectors, capacitors, crystals, etc. This allows me to buy in larger quanities which usually results in a price break. In addition, I know that my PCB layout software will do an appropriate job on these parts.

The Requirements and Feature List

A requirements and  features list serves a couple of purposes in the design process. It allows you to determine what really needs to be on your board, and what is optional. Usually, I start with the requirements first.

List of Requirements

The requirements list usually is a list of what you expect people to do with your board, and what they might want to have available for working with it. This takes a little thinking about what you want on a board, plus asking around a little. My requirements list is:

This list has been reviewed by several of my regular customers. It incorporates some of the features they asked for. The range of ideas that didn't make the list were quite impressive. In fact, it was mentally difficult for me to leave some of them out. However, in the end, I know that the board will be more generally useful.

List of Features

Ok, down to brass tacks. What features have I sorted through to put on my board. Always make a list:

Whew, thats a decent enough list for now. There are some optional things in my feature list. Some of the features may get cut in the tradeoff between board size and functionality. As the schematic is developed, I will find some things that just don't seem right. None of the design is set in stone just yet, so we aren't too worried about having to make changes, yet.

The Next Steps

I need to workout a schematic that incorporates all of my features. For this, I am going to attempt to use Eagle 4.0 as my layout software. It will be interesting to see how well it works for this board. Check in next month for the latest installment.