Expanding Your 2313 Experimenter System

In the book Introduction to Microcontrollers, I alluded to the ability to expand your 2313 Experimenter System (2313ES.)  On page 70, I showed a drawing of a breadboard attached to a 2313ES.  This week, we will go ahead and expand our 2313ES with a medium-sized breadboard – this will provide pretty decent expansion capability, but will allow the 2313ES to keep it’s portability.

To start off, you will want to pick a piece of plastic, or something, to use as a base.  In this example, we use a plastic base plate from Tamiya (http://www.wrighthobbies.com/product.php?productid=62&cat=16&page=1 – Eddy was thinking about offering the base plates separately, write to him and ask him about this,) but you could use just about any

This is actually a cutting board which was included with a cheese & cracker gift set purchased years ago. It will make a nice little development kit base.

This is actually a cutting board which was included with a cheese & cracker gift set purchased years ago. It will make a nice little development kit base.

flat-surfaced item.  Consider a small piece of thin plywood, a small piece of metal, or plastic, cut from the side of something from the trash, a small clipboard without the metal clip, or maybe even the inside of the lid of a plastic pencil case (back-to-school specials abound right now.) The important thing here, is to just make sure that your kit and breadboard (and battery box, if you want it,) will fit.

Once you find your base, peel the backing off of the sticky foam tape on the bottom of your breadboard, and stick the breadboard into place on your base.   Next you can solder two small pieces of jumper wire to the two power rail holes on your 2313ES printed circuit board 2313ES Exp-1(PCB.) Now, peel the backing off of the 2″X2″ foam tape that was included in your kit, and use it to mount your 2313ES near your breadboard.  Then plug the the power wires into the power rails of your breadboard (you could also use the left-most holes in the power rail female headers, of your 2313ES, for a less permanent solution.) Finally, mount your battery box (if you want it) to your base; make sure that you leave access to both the sliding door and the power switch, as they are on opposite sides of the battery box.  Also, if your breadboard has dual power rails on the top and bottom, you will need to connect the two +V, and the two Gound, rails, as we have on the right side of the photos.

Once you get your 2313ES and breadboard mounted, you will want to test the connections 2313ES Exp-2to make sure that everything is wired up properly. You can use a simple “blinkenlight” (http://www.instructables.com/id/Ghetto-Programming%3a-Getting-started-with-AVR-micro/#step6 – this is the same as the small test device that you built while testing your 2313ES,) to test power; place the negative lead (the one with the resistor) into the ground power rail, and the positive lead into the 2313ES Exp-3+V power rail.  Place the power selection jumper over the Pgmr jumpers and connect the programmer and the LED should light up.  You can also simulate the blinkenlight by just plugging an LED and resistor in to the breadboard.

If the LED does not light up, there is a bad connection between the 2313ES and your breadboard.  Remember to disconnect power before changing any of  the wiring, here. Recheck the wires connecting the two pieces.  If you soldered the wires to the holes in the 2313ES, then disconnect one from the breadboard and temporarily replace it with a jumper plugged into the 2313ES’ female header for the power rail.  Connect power again and check that the LED lights up.  If it does, then the wire that you replaced is bad; recheck the soldering and maybe replacing the wire.  If the LED still does not work, then remove power, temporarily replace the other wire and check again.  Again, do not forget to jumper the top and bottom V+ and Ground rails together.  LESSON LEARNED – When I first connected this breadboard, I accidentally connect both V+ and Ground to the same rails – not good!  Fortunately, this system is pretty durable.  The USBASP (or the USB port on the computer) detected the short, and just shut down the power to prevent damage.  As soon as I corrected that goof, everything worked again.

Once you get the LED to light, you may want to permanently mount the LED and resistor.  2313ES Exp-4Take a look at the photo for how you may want to do this.  Once you get the parts placed and working, you will want to cut the leads short (make sure that you remember which LED lead is for the cathode (negative.)  This will keep the LED and resistor neat and out of the way – in fact, you may want to use a tiny bit of glue, or epoxy (or hot glue) to 2313ES Exp-5keep them in place, it will be more durable that way.

This will provide a quick, and easy, pilot light, to let you know when your 2313ES has power applied.  Just remember that the LED does draw power, even if you are not running any useful program on your Tiny2313 chip.  This is not a lot of current, about 20mA, but it will help to drain your battery, if you are using the battery pack.  Just make sure that you turn off the power switch on your battery box when you are not using the experimenter kit.

Next week, we will start adding stuff to the breadboard expansion.  Stay tuned.

Developing New Products

Today, we are going to start looking at developing new products.  We will begin with getting to know our development kit (starting off with the 2313 Experimenter System.)  This new product was developed, specifically to allow engineering students to learn about microcontrollers, and how to use them.  As an advanced part of learning how to use microcontrollers, you can use the 2313 Experimenter System to develop new products.

2313 ES

The 2313 Experimenter System

The 2313 Experimenter System (from now on, let’s call it the 2313ES for simplicity) provides you with an AVR ATtiny2313A microcontroller, from Atmel, a programming port, three LED lights, two push-button switches, a speaker, and two servo-motor/sensor I/O ports.  In addition, the 2313ES provides the ability to draw it’s power either from the programming port, or a battery – complete with protection from reversed polarity.  There are also two power strips available, to easily provide ground and +V connections for your circuits.  Right next to these power rails, there are additional drill holes to allow you to easily extend power to an optional breadboard.  Our first “product” will not be using the breadboard (don’t worry, we will expand the 2313ES later on.)

The Product
A couple of my kids have had to have braces.  Every kid who has had braces, has heard the Toothbrushing Timeradmonition from the doctor to “make sure that you brush for three full minutes.”  Of course, when you are doing something that you don’t enjoy, time seems to crawl.  It is very difficult for a kid (of any age) to brush for a full three minutes – it seems to take forever.  So, our first product will be a simple tooth-brushing timer.  The requirements for this product will be pretty simple: start timing and let the user know when the three minutes have passed (by the way, you could also use this for a “time out” timer for young children for when they misbehave.)

The doctor’s office gave both of my kids a simple “hour glass”-style sand timer for them to use, and it does the job; however, I think that it can be improved.  That is what we will work for in this development project.

Developing The Timer
Let’s start off with the hardware side of the timer. Take your 2313ES and make sure that the programming cable is not attached and that the battery box is not turned on.  Now, run a 2313ES - LED & Speaker Connectedshort jumper wire from the the second from the right-most hole (or pin) on the Tiny2313 socket, labelled PB0, to the right-most LED (like the blue wire in the drawing to the right.)  Take a second wire and connect PB1 to the speaker terminal (as shown in yellow.)  This will give us all that we need to start developing the program (the firmware) for our new tooth-brushing timer.  That is one of the beautiful things about development kits (or dev kits;) it is really simple to set up your system for developing new products.  In fact, that is where the dev kit gets it;s name.

The Program
The program that will run our timer, is called the firmware – this is software that is always there, and cannot be easily changed (like you would change from a word processor to an internet browser on your desktop, or laptop, computer.) Normally, you would not want to change the program on your program on a control system.

We will develop our firmware in MCS Electronic’s BASCOM-AVR, as we used in the book, Introduction to Microcontrollers.  Launch your BASCOM program and enter the following:

‘ Title: Tooth-brushing Timer
‘ Author: Art Granzeier, Granzeier Consulting  – Use your name here.
‘ Date: 13 Oct 13  – Use today’s date here.
‘ Description: Delay for 3 minutes and then alert the user.

‘ Configuration Section
$regfile = “ATtiny2313a.dat”     ‘ Specify the micro
$crystal = 1000000                    ‘ Frequency for internal RC clock
$hwstack = 32                             ‘ Default – Use 32 for the HW stack
$swstack = 10                              ‘ Default – Use 10 for the SW stack
$framesize = 40                          ‘ Default – Use 40 for the frame space

Config PortB = Output

‘ Main Program
‘ Pause for 3 minutes

‘ Alert the user
‘ LED on

‘ Tone from speaker


(Note: don’t try to copy and paste from this page – the HTML code will make BASCOM cry.  Instead, use the .BAS file that I have posted here: http://files.granzeier.com/Downloads/Toothbrush.bas.  Read through the rest of this post first, because this .BAS file contains all of the additional statements as described below.)

This will provide the frame, or skeleton, for our new program.

Now, we need to start the program by counting up for three minutes, when the timer is turned on.  As we covered in the book, you could use the waitms command to wait for a specified number of milliseconds (thousandths of a second.)  Looking through the BASCOM manual (you did download that when you installed BASCOM, right?) we find that there is another command, related to the waitms – the wait.  Looking at this command, we see that this will wait for a specified number of whole seconds.  For longer delays, this is what we need.  Under the comment about pausing for three seconds, type the line:

Wait 180

This will cause the program to pause for 180 seconds, or three minutes.

Next, we need to notify the user that they have been brushing long enough. Under the LED on comment, under Alert the user, type this line:

Set PortB.0

This will cause the LED to turn on, just like the first experiment in the Intro book.  And, now, since we want the user to be notified, even if the kid is not watching the timer, we would add the following line under the tone comment:

Play PortB.1, 500, 125

That is all that we need to meet the initial product requirements for our new timer.  Make sure that the power selection jumper is set to power your 2313ES from the programmer.  Next, take your programmer and connect it up to your 2313ES and plug it into your computer.  Compile the timer program and download it into your ATtiny2313.  Now, unplug the programming cable from the 2313ES, and (with the battery box turned off) switch the power selection jumper back to the battery position.

Now, turn your battery box switch on, and wait.  Remember, that three minutes is a long time, when you are just watching and waiting (remember, “a watched pot never boils.”)  About three minutes after you turn the timer (err, your 2313 Experimenter System) on, the LED will light, and a short tone will come from the speaker.

Well, congratulations on developing your first product!  Of course, this is really the very beginning of your development process.  What you have here is more like your first, rough draft of a term paper; it will still need some clean-up work.  We will cover that in our next blog post.  Until then, play with the program and see what happens when you change things in the program.  Note that the sound statement has three parameters: the first is the pin on which you want the sound pulses to appear; the second is the duration (actually, it is the number of pulses — it will change depending on the tone;) the third parameter is the tone (again, it is not really the tone, but rather the delay between the pin going high and low.)  Take the numbers that I have presented and play with them to get a sound that you like.  Also, since three minutes is a pretty long time when you are experimenting, you will want to change the delay time in the wait statement.  I used five seconds, so that it still seems to be a timer, but it is not a painful wait. Just make sure to put it back to three minutes before we continue next time.

Until, next time – keep on learning.

Introduction to Microcontrollers

I want to introduce you to our newest product: the Introduction to Microcontrollers book and kit.  This set was designed in answer to the question, “how do I get started in microcontrollers?”  This question comes up pretty often in electronics, computer, microcontroller and robotics forums (and off-line, any time that the subjects come up.)  The best way to learn something is to dive right in, and get started; but you will have lots of false starts if you don’t have a guide for the exploration.

You will get a text book, written with total beginners in mind.  The nearly 100 pages include text, sample programs, quizzes and their answers.  You also get a small, simple development system.  This is a 2″ x 2″ Printed Circuit Board (PCB) with an Atmel ATtiny2313 microcontroller, a programming interface, a power connection (able to power the board from the programming interface or a battery, which is included,) and several Input/Output (I/O) devices.  Each I/O pin on the microcontroller, and each I/O device, has a female connector so that you can plug short jumper wires between them.  This allows you to easily connect the I/O devices directly to the microcontroller.

2313 ES

The new Tiny2313 Experimenter System


This book starts off by giving a good working description of a microcontroller, and introduces you to the actual controller that you will use for the course.  The second chapter describes programming, and walks you through installing a very powerful programming language for the microcontroller.  In the third chapter, you will actually build the simple development system of your own (all of the parts, including the printed circuit board [PCB] are included in the kit,) as I described above.

The rest of the book (an additional four chapters) are dedicated to getting you started in connecting devices like LED lights and pushbutton switches and programming your microcontroller to do what you want.  I made sure to go over each and every single line in the sample programs, so that you understand what (and how) everything works.  There are many samples included, with directions on how to modify each one to do what you want.

Coming up, we will be presenting a  series of short projects that will expand your knowledge with the Tiny2313 Experimenter System.

We are currently having an introduction sale on this set, for the rest of this month, we are offering the book and kit for only $19.99, that is 33% off the regular price.

Tiny 2313 Experimenter’s Board

There is a new project on which I am working.  For years, I have been taken with development kits.  Since money has always been pretty tight, most of my interest has been in the lower-cost kits.  Also, as a teacher, I have worked for decades to try to teach beginners about electronics, robotics and computers (our tagline reads: Helping to Build a Better Engineer.)

This new project is a very low-cost dev kit to introduce students to microcontrollers using Atmel’s low-end ATtiny2313.  This is a chip that I often find myself choosing when I need a low-cost controller for a project.  The kit is designed to provide much of what an engineer needs to create a new project.  There are pushbutton switchers, LEDs, connectors for servo motors and a speaker.  The board even has a light detecting phototransistor and a thermistor (I may have gone too far with that, since the 2313 has no real analog input – we shall see about that in beta testing.)  All of this fits in a tiny 2″ by 2″ PCB and can mount on a 4-cell AA battery box (with room to spare.)  The target price for this board is around $30-$50, with a beginner’s introduction text included.  There may also be an offer for the bare board for those who would like to roll-their-own.

Basically, I wanted something that is portable, like my Pocket Development Kit (http://www.instructables.com/id/Build-a-PDK-Pocket-Development-Kit/,) and with all the peripherals needed to get started and learn.

Here is a picture of the Tiny2313 Experimenter’s Board, as it currently exists:

As you can see, the board uses a standard 10-pin STK-500 programmer.  There are many of these around, and I am currently evaluating one that I may be able to offer for under $10.  Also, since the STK programmer provides +5V, there is a jumper-switchable option to power this board from either an external battery (or power supply) or the attached programmer.

There is a reverse-polarity protection diode in-line with the battery input.  Yes, this will drop the input voltage by about 0.6V, but the Tiny2313V works just fine at those lower voltages.  This will affect the analog parts of the system, but that is something that I am still considering (also, we have a ‘X61 equivalent in development – the ATtiny26 family has several built-in real ADC (Analog to Digital Convertor) inputs on-board.

One thing that has yet to be determined is whether this is OK, as is.  With the Tiny2313’s analog comparator inputs (rather than true analog input,) the analog devices are only useful if the board has (or has access to) DAC (Digital to Analog Convertor) such as an R-2R circuit.  One change, consideration is whether to drop the servo motor connectors and replace them with a DAC, or to keep the servo interface.  This would lower the board’s value to robotics, but provide better analog capabilities.

Another possibility is to include a tiny breadboard and the resistors to create a simple R-2R DAC.  This would tend to lessen the all-included intent of this design – I really wanted something tiny that has everything needed to get started.  What do you think about these possibilities?  I am most interested in people who are wanted to just get started, or have taught these types of classes before.  Let me know!

LaunchPad Booster ProtoBoard

Well, my prototype boards arrived from BatchPCB (http://www.batchpcb.com.)  Thanks guys, the boards look nice and went together well.  I received two copies of my protoboard and set one up for each of the primary configurations.  For the more minimal configuration (just the board, itself,) I soldered the male headers from the LaunchPad to the bottom of the protoboard.  Notice that I placed the headers in from the bottom and soldered on the top of the board:

Prototype Booster Pack - Note that this is the bottom of the board

The reason for inserting the headers from the bottom, is because of the jumper pins connecting the emulation section of the LaunchPad to the target section.  With the male header inserted from the top (component) side, there is not enough room for soldering components to the Protoboard.  Even with inserting the headers from the bottom, you will need to be careful, there is not much room.

Notice the tight space here by the jumpers.

Now, you can build your own circuit to add to the LaunchPad.  Insert the components just like you were using a solderless breadboard and then solder them down.  Wah-laa, nice and simple.  Create any kind of Booster Pack that you want, and with this solder version, you have a nice stable circuit.

Notice that with the Booster Pack installed, you still have access to the on-board programmable button, the LEDs and the reset button.

Next, for when you are starting out and still experimenting; check out the solderless version:

The solderless breadboard version - Notice that you still have access to the programmable button, the two LEDs and the reset button.

When you want to do some quick-and-dirty experimenting, this will give you everything you need to add your own components.  I took one of my Digital Interface Kits (http://zenstore.granzeier.com/index.php?main_page=product_info&cPath=1&products_id=6,) and a couple of hookup wires, and added a second programmable pushbutton switch and one more LED; all in just a minute or two.

Added an additional pushbutton and LED in a minute or two.

Now with a notebook (or netbook), the USB cable that came with your LaunchPad, the above dev kit and a small assortment of components, you can do your experimenting, even while on the go.

The solderless version of the kit will include the board, two female pass-through headers, two female headers for the power rails and a small solderless breadboard.  Solder the headers onto your Booster Pack board and then peel the backing off the double-sided tape on the bottom of the breadboard and stick it in between the pass-through headers.  Add your components and wire them together with hookup wires.  Write your program and get everything running.  When your circuit is working, you can transfer it to the soldered board for a permanent Booster Pack.

The soldered version of this kit will include the board and two 10-pin male headers.  You will solder them into the board and then you can add your own components.  Plug the completed board into your LaunchPad and you have your Booster Pack!

Both versions will give you full flexibility in a compact package, yet will still allow you full access to the LaunchPad’s on-board programmable pushbutton, two LEDs and the reset button.

Now, here is what I need from you: does this look like something that would interest you?  Am I missing something extremely important?  Is RoHS (Restriction of Hazardous Substances, i.e. Lead-Free) important?  If there is lots of interest, I will order a larger initial order of boards.  Thanks for your help on this item.

A Low Cost Board – The TI LaunchPad

Well, as promised, we will discuss the LaunchPad board from Texas Instruments (http://www.ti.com/launchpad.)  At U$4.30 per board (including shipping), this may “seem too good to be true.”  Let me assure you that the offer is very real.  It appears that TI is taking a loss on this deal (probably writing it off to advertising) , and hoping to make it up in higher units sold.  Let’s get started with this cool part and see if we can’t sell a gazillion of the things for them – and, by the way, selling a gazillion of our products in the process. 😉

Here is a picture of one of the LaunchPads that I recently received:

Notice that there are series of ten holes along either long edge (left and right sides in the above picture.)  These are for the male and female headers, which are supplied with the kit, so that you can easily access all of the signals to and from the MSP-430 controller chip. If you are including the entire LuanchPad in a production unit (the price is low enough that you can actually do that!), then the holes could be used to solder the additional circuitry directly to the LaunchPad.

TI recommends that you solder the male header into the top (component side) of the LaunchPad board, and then solder the female connectors to the bottom of a Booster Pack.  The Booster Pack, is simply their name for a plug-in daughter board, similar to the shields used to connect circuitry to the Arduino controllers (http://www.arduino.cc/en/Main/arduinoShields – Click on the list .)  Limor (AKA Lady Ada) has a nice Arduino prototyping board with lots of nice pictures on her site (http://www.ladyada.net/make/pshield/.)

I think that, if you want to do experimenting with the LaunchPad out of the box, it would be better for you to solder the female headers to the top of the LaunchPad, rather than the Booster Pack.  This will allow you to plug simple wire jumpers into the female headers to add circuits on a breadboard, while allowing you to solder the male headers to a Booster Pack and still have full functionality from the Booster Packs.  Take a look at mine to see better what I am discussing:

This way, all you need to do to get started is to solder in the female headers, and then plug-n-play.  Plug a red wire into the Vcc socket on the uppermost pin of the left socket on your LaunchPad (when held with the top side facing you and the USB connector up), and plug the other end into the positive power rail of your breadboard.  Repeat that with a black wire going from the Gnd (upper-right pin) of the LaunchPad to the ground power rail on your breadboard.  Abracadabra, and you have (nearly) instant prototyping.  Plug a wire from one of the port pins on the LaunchPad and into a socket on your breadboard and go wild adding circuitry to your MSP-430.

Actually, for really simple circuit experiments, you can even use the female headers on the LaunchPad by themselves as sort of a breadboard on their own.  Take a look at this photo:

I took one of my Speaker Packs (http://zenstore.granzeier.com/index.php?main_page=product_info&cPath=1&products_id=5,) and plugged it directly in to the Vcc pin and the P1.1 pin.  Now, for simple sound output, I can write a program to send a sound signal out to the P1.1 output and hear the results without even the need for a breadboard system.  Talk about portable; write a music box while riding the bus or train in to the office.  😉

I drew a protoboard Booster Pack about a week or so ago (actually before I saw Limor’s shield), and will be sending it out for a proto run (http://www.batchpcb.com.)  If the boards work properly, I will be sending out for a production run and putting them into my store.

Here is a picture of my Booster Pack:

As this is currently laid out, the outside pins, closest to the labels in the above picture, mate up to the LaunchPad’s expansion pins.  If you solder the female headers to the LaunchPad, and then solder male headers to the bottom of those pins on my Booster Pack, the Booster Pack will plug directly in to the Launch Pad.  You could use pass-through female headers (headers with extra long pins) and solder them to the top of my board, that way, you could use my board and also plug in a different Booster Pack on top of the Protoboard.  Also, when you plug my LaunchPad Prototyping Booster Pack into the LaunchPad, it will leave the on-board pushbuttons and LEDs available so that you can use them in your projects.

You can either glue a solderless breadboard onto the Prototyping Board, or you can use the prototyping area on my board and solder the circuits right to the Prototyping Board.  Either way, there is room for a couple of 10-pin headers which will provide you with Vcc and Ground, along with complete columns of Vcc and Gnd down the center to provide easy access to power for your circuit.  There is enough room on the prototype area to place a single 40-pin DIP, or up to four 8-pin DIPs.  You can quickly add new circuitry to your LaunchPad; great for learning too!

Well, that’s it for today.  Be sure to take a look at my store (http://zenstore.granzeier.com) for other electronics packs and kits.  Also, if you are interested in Retro Computing, check in with my RetroChallenge entry at: http://retrochallenge.granzeier.com.)

Intro to Breadboarding

Way back in the early 1900’s, when hobbyists were just getting started in electronics, experimenters needed a way to quickly get a circuit up and running.  Nearly every kitchen had a small piece of wood for cutting the bread (remember this was before 1928 when sliced bread was invented.)  This piece of wood was about one foot, or so, long by about eight to ten inches wide and about ½” thick.  It was about the perfect size to set up for experimenting with the new electronic circuits.  The aspiring engineer could just take a few nails and hammer them in to the wood and then solder his components right to the nails.  Quick, easy, simple…, and it left your circuit wide open for hooking up meters and other test equipment.  You could also easily extend your circuit by just adding more nails and soldering your components on.  Thus the name for our rapid prototyping system: a breadboard.  The only down side was when Mom went to get her breadboard to slice the bread which just came out of the oven.  She usually disapproved of the shape of her poor cutting board, sometimes vehemently so.

The breadboards we have today are usually not found in the kitchen and are specialized tools meant to allow you to quickly set up new circuits on a temporary basis.  Once you have completed your experiments on the breadboarded circuit, you just pull the components and hook-up wires out of the board and you are ready to begin building your next circuit.  That is what we will be doing in this post.

Take a look at the breadboard drawing shown here.

A sample breadboard.


Each of the squares in our example drawing represents a small hole in the plastic breadboard.  These holes are just the right size to insert a single pin of a DIP IC, or a single lead of a component such as a resistor, diode or capacitor.  Inside each hole is a metal clamp which grabs hold of any lead which is inserted into the hole.  Notice the columns of five holes numbered 1, 2, 3 and so on.  There are two parts to each numbered column.  The first column, numbered 1 consists of two sets of five holes.  These are labeled A through E and F through J.  See how the squares are connected together by small black traces?  In the same way, the metal clamps inside the holes in each set are connected together.  So any pin or lead plugged into one of the columns of holes is electrically connected to any pin or lead plugged into any other hole in that column.  This is how you will be connecting components together in your circuit.

Also, notice that there is a trough down the middle of the breadboard, between the two parts of each column.  This not only separates the two sets of holes physically, it also separates them electrically.  There is no connection between row E and row F of each column.  This trough is exactly 0.3” wide, which is just wide enough to fit a single “narrow” DIP IC across with one set of pins plugged into row E and the opposite set of pins in row F.  See the drawing with the DIP IC plugged in for a better idea of how this looks.

Notice the IC added to the breadboard.


When inserting a DIP IC, you will need to be careful not to bend the pins under the IC and into the trough.  This is like plugging an IC into a socket; use the same precautions.  Once the IC is plugged in like our drawing, each pin is electrically connected to four additional holes for extending the circuit.  For example, look at our drawing; notice that pin 1 of the IC is plugged into hole E3 of the breadboard.  (The pins on a DIP IC are numbered starting just below the notch on the left side of the package and go around the IC counter-clockwise.)  Pin 2 is plugged into hole E4, and so on.  If you wanted to connect a wire to pin 1 of the IC, you would simply plug it into any other hole from A3 through D3, they are all electrically the same.

Finally, most breadboards also include either one or two additional rows of holes above and below the area, which I described above.

See how the power rails are connected horizontally?


These are called the Power Rails and are most often used to provide the positive voltage and ground along the entire circuit.  This can make it more convenient to tap into the power anywhere in your circuit that you wish.  Notice that while these are physically grouped in sets of five, the groups are actually connected to each other all the way down the length of the breadboard (as long as you have the short boards – about 3” long, longer breadboards may have each power rail split into two sets).  Many engineers will use the top rail for +5V and the bottom for ground.  If they have two rails on top and two on bottom, they may pick one rail on each side for +5V and the other side for ground.  These rails are often color coded and you may want to pick the red for +5V and the blue or black for ground.  This will make it even easier to tap into power anywhere in your circuit.  This is where the red and black wires from the battery pack on your breadboard will plug in.

 Testing Your Breadboard

To test your breadboard system, take a 330Ω resistor (the resistance is approximate and other close values could be used) and bend both of it’s leads 90˚ to the body of the resistor so that both leads are parallel and point the same way.

Plug one lead of your resistor into the ground power rail and the other lead into hole A1 of the breadboard.  Next, take a green LED, and spread the leads apart 90° from the body of the LED.  Place the LED on the breadboard and mark where to bend the leads, so that they can plug into the breadboard and the LED will be flat against the breadboard.  Plug the cathode lead (negative, the shorter lead) in to hole E1 and the anode lead (positive, the longer lead) into hole F1.  Last, take a short piece of hook-up wire (about 1” long) and strip about ¼” of the insulation off each end.  Plug one end into hole J1 and the other end into the positive rail of the breadboard.  Plug a battery pack into the power bus strips on your breadboard.  The red wire should plug into the +V bus and the black wire should plug into the Ground bus.  Be careful to get the polarity correct or you may burn out the LED (later when you plug in the controller, you may burn that out as well.)  Put fresh AA cells into the battery box and turn the switch to the On position.

The LED should burn fairly brightly, you should be able to see it light even in bright indoor lighting.  If your LED does not light up, check the wiring of your battery pack, the red and black power wires going to the rails of your breadboard and the LED, resistor and wire.  If the LED lights, but is dim, replace or recharge your battery.  Start off with freshly charged cells and your set should give you hours of experimenting before the battery needs to be recharged or replaced.

A breadboard from another project. Notice the power indicator, like I described in the text.

Now, remove the LED and the resistor.  Trim the leads so that the components sit tightly against the surface of the breadboard.  Since you will be trimming the leads of your LED, the cathode will no longer be the shorter lead and you will need to be very careful that you get the polarity of the LED correct.  This will make the circuit more stable, and your test circuit can be used as a power indicator for any future experimenting that you wish to do.  You may even want to put a few dabs of epoxy or hot-glue on the resistor and LED to hold them permanently in place.

A Low-Cost Development System

This is actually something that I came up with last year for the Unofficial Propeller Expo-NorthEast.  Since the purpose of my company is to help engineering students, my display at the expo was about development systems.  I even had a display that showed an original breadboard, made on a wooden board (similar to the bread cutting boards of the early 20th century electronics hobbyists.)

I had found a white mini-shelf unit.  It was just a white-washed wooden box, about 14″ by 14″ and about 3′ tall.  One side was opened, and there were several shelves on a peg-mounting system; the kind where there is a series of holes in the sidewalls, and pegs fit into those holes, with the shelves sitting on those holes.

Most engineers have to work on more than one project at a time, so my idea was to have each project on it’s own tray and then to keep each project on a shelf until you want to work on it, then you would just take it out of the box and then put it back when you are done.  Then you can take out, and work on, the next project.

One of the boards in my development system.

The board is just a cheapy plate, which I bought at WalMart for 4 for a dollar.  Use double-sided foam tape to mount your breadboard, development circuitry and a battery holder to the plate.  You can use just about anything, even a thin piece of plywood.  If you do use wood, be careful: I have heard of pieces of metal being embedded into some wood.  That should not matter here, since everything would be taped to the surface; but if you screw or nail any circuitry to the board, be careful to check for shorts.

What you would do is to take one board (plate) for each development project and build your circuit, one per board.  I had one board with a Parallax Propeller Protoboard (http://www.parallax.com/Store/Microcontrollers/PropellerDevelopmentBoards/tabid/514/CategoryID/73/List/0/SortField/0/Level/a/ProductID/509/Default.aspx), like the one above, and then another one with a Chibots Controller (the Chibot Controller is no longer available, but the M32 Dev is,  check it out at http://www.wrighthobbies.net/catalog/product_info.php?cPath=21&products_id=30) board for experimenting with Atmel’s Mega-8 chips.

This will also help you if you only work with one product or family.  You would use one tray for each separate project on which you work.

I hope that this gives you some ideas to help you with your development projects.