Build Your Own Development Board

96,119

574

59

This instructable will show you how to build your own development board from scratch! This method is simple and doesn't require any advanced tools, you can even do it at your kitchen table. This also gives a better understanding of how Ardruinos and other development boards really work.

You can design your development board to fit your specific purpose. This development board shown in the picture was used to control the rpm of a DC-motor. The DC-motor was controlled from a computer using the serial port. The LEDs were used to assist when debugging was needed.

In this Instructable I will show how to build a versatile development board, therefore the part list will not be the same as the one shown in the picture.

Step 1: Parts

Part list:

  • 1 Atmel ATmega88 (or any processor that best fits your needs)
  • 1 Dip IC socket 28
  • 1 10k ohm resistor
  • 1 100 ohm resistor
  • 1 diode
  • 3 0.1 μF capacitor
  • 1 10 μF capacitor
  • 1 LED-diode
  • 1 330 ohm resistor
  • Some jumpers
  • Some male-pins (or female)
  • A piece stripboard (use one with strips and not matrix, see picture)

To later be able to program your microcontroller you will need an ISP programmer (In-System programming). I used AVRISP mkII (http://www.atmel.com/tools/avrispmkii.aspx). There is a lot of different ISP-programmers to choose from, or you can build your own. There is also some ways to configuration an arduino to act as a ISP-programmer.

Step 2: Teori

To build and program a development board from scratch you will need to read some datasheets. It can sometimes be hard to find the thing you are looking for but I will provide the most important stuff.

ATmega88 datasheet

Hardware design consideration

First we need to look at the pinout of the ATmega88 which can be found in the datasheet.

Some important ports that need extra consideration are the following:

  • Pin 1. This is the reset pin that will reset the processor when it is low. This pin will need a pull-up, so the the pin always is high unless you want to reset. (This will be shown later)
  • Pin 7 and 20 is where the Vcc should be connected, 5V.
  • Pin 9 and 10: To these pins an external crystal can be connected, but we will use the internal oscillator. We can therefore treat these pins as usual digital pins.
  • Pin 17,18 and 19: These will be used for programming (this will be shown later).

Step 3: Stripborad Layout

To create the circuit diagram we will be using StripCAD, follow link to download the program.

This program can be a bit hard to use since it isn't user friendly, but it is effective when you know how to use it. Play around with it a bit and you will soon master it. Some good tips are the following.

  • Press c to search for components
  • Press v to obtain different variants
  • Press left mouse click between two dots horisontal to get a disruption
  • Press left mouse click between two dots vertical to get a solder bridge

When searching components:

  • "DILxx" will give you a Dual In-Line followed by the number of pins
  • "SILxx" will give you a Single In-Line followed by the number of pins

Otherwise just search for that component you are looking for.

Step 4: Pull-up Reset Pin

From the hardware design consideration document on side 6 we find the circuit in the picture. Read the text in the document to get a better understanding. This is the step were we handle the pull-up for pin 1.

It can be good to insert a manual reset for the microcontroller. This can be used by connecting a SIL2 in line with a 100 ohm resistor to ground. Short circuit the SIL2 with a jumper and the microcontroller will reset. The 100 ohm resistor will prevent the capacitor from short-circuiting. Otherwise just follow the circuit diagram from the document.

In the second picture the pull-up connection is illustrated in StripCAD

Step 5: Power Supply

To avoid interference a capacitor 10 μF is placed near the voltage input on the board. To avoid interference that is caused in the board 0.1 μF capacitor is placed between pin 7 and 8, and between pin 20 and 22. These capacitors will act as a low-pass filter. The small capacitor should be placed as close to the pins as possible for best effect.

It is also possible to add some kind of voltage regulator e.g. 78L05, to make it run on a battery.

Step 6: ISP Programmer

To program the processor you will need an ISP programmer. There is different connectors available, 6 pins or 10 pins. I used one with six pins, look at the hardware document to see how the connection should be designed.

ISP-programmer stands for In-System programming. The convenience with this type of a programmer is that you can program your device when it is installed in a complete system, rather than to have your chip installed before installing it to the system. It is also easy to reprogram once it is installed to the system.

See next step for how the ISP connection should be made.

Step 7: Layout

When the design is complete, press print to save it as a PDF (Or use attached file). Open the PDF-file and print it. Be aware that the printer setting should be set to actual size, otherwise the design will not match with the stripboard.

It is always a good idea to include a LED that shows if the power to the development board is on. That simple tip can save a lot of unnecessary debugging.

Steps to manufacture your own development board:

  1. Print out the circuit diagram, and use scissors to cut it out.
  2. Cut out a big enough piece of the stripboard, so the piece of paper fits on top.
  3. Position the paper over the stripboard so the holes corresponds, use an ordinary glue stick to attach the paper to the stripboard. Glue the paper to the side without copper strips.
  4. Start by making the disruption at the red crosses
  5. Follow up to build and solder from the lowest components to the highest, that will make the assembly easier.
  6. Hook it up to power supply (5V) and start to program.

Now the hardware of the development board is done!

Step 8: Programming

I used Atmel Studio for programming in C. Download the program and start to create awesome project with your own development board. It will be possible to boot-load arduino, but if you want a better understanding of what is hiding deep below in the arduino language try some examples in C. For example test out some timers,interrupts and analog reading.

In the ATmega88 datasheet you can find a lot of example codes for different specific tasks that your microcontroller can do.

As you can see this is a simple way to construct different prototypes for electronical devices. It is easy, cheap and doesn't require special tools.

Microcontroller Contest 2017

Runner Up in the
Microcontroller Contest 2017

Share

    Recommendations

    • Optics Contest

      Optics Contest
    • Plastics Contest

      Plastics Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018

    59 Discussions

    0
    None
    Karlstrom

    1 year ago

    Thank you all for pointing out my misstake regarding the misleading title. The title is now changed and I hope you all will understand the Instructable better.

    0
    None
    canidorichard

    1 year ago

    The title states quite clearly you are building a microcontroller from scratch which most people would realise it's unlikely before even opening the instruction and then when you read that it is without any special tools you know something is not right. What you have done is create a development board for an existing microcontroller. Call me pedantic but if you are providing instructions to less experienced individuals then you need to be accurate. I don't want to put a downer on this as clearly you have put in much effort hopefully learning a thing or two along the way but if others are to truly learn from your effort then accuracy is essential and this needs to be corrected.

    4 replies
    0
    None
    AndersJ3canidorichard

    Reply 1 year ago

    Yes, really your comment!?!
    No, you are wrong, and probably doesn't even understand it.

    0
    None
    KevinW28canidorichard

    Reply 1 year ago

    Absolutely right, as how can anyone trust what is explained if the facts are inaccurate. I wish more people would take the time to get facts and spelling correct.

    0
    None
    TCSC47

    1 year ago

    I have been using veroboard since it was invented (I am that old!!) and I have never seen or thought of putting a printed over plan on it as shown in your picture. What a great idea! Much respect if it is your idea.

    0
    None
    mike02557

    1 year ago

    Agreed that this is a development board that uses a micro-controller. If you want to learn how to build your own micro-controller, look at the Small Experimental Computer System, built in 1973, (yes.. the SECS machine). I designed the software programming language for it. I also wrote the diagnostics in micro-code for it. Another student designed and built the memory from scratch. Entire machine was built from scratch, including the power supply and assembler. Not many can claim to have done this type of work.

    Mike

    9 replies
    0
    None
    Falneymike02557

    Reply 1 year ago

    I have built Sim RAM and a CPU from scratch back in University. Does that mean I get to be in the cool kids club?

    0
    None
    mike02557Falney

    Reply 1 year ago

    I am officially inducting you and tom-LI (next post) in the "COOL Before Our Time" MASTERS CLUB.

    Yes....Building a CPU, wiring up your RAM, Wrting a BOOTLOADER, these are the things the MASTER does and hopefully the Grasshoppers appreciate. You see computing differently when you code at the Micro-code level. Intel 8080's, Motorolla micro-processor's...these really required real knowledge of logic circuits. one-shots and other things at the boot level that today's computer scientists are less likely to understand. I wrote micro-level host slave code that was early networking codes. I wrote diagnostics for tape drivers, printers, serial ports, disks and other devices, so my understanding of computers is different that someone who graduates today with a Computer Science degree. They don't need to know this stuff because it is done for them, so they can concentrate on high level phone apps and take advantage of what was done before them.

    Personally, I liked writing assembler code and Basic and Fortran and Focal and Algol. Serial, non-oriented programming made more sense to me and my code was extremely high quality with little to no bugs.....and I'm talking several million lines of code.

    So WELCOME!!! It is nice to see there are other Masters oiut there!

    Master Mike

    0
    None
    Howard3030mike02557

    Reply 1 year ago

    Anybody remember Intel's very first "compatible" competitor Zilog with
    the Z-80? We had several S-100 bus systems based on it as well as the
    8080 (pre-IBM PC with the 8088).
    Televideo Terminals - those were the days. . . . .sigh.
    What a great article this was though - really took me back.

    0
    None
    MarkkuNHoward3030

    Reply 1 year ago

    We used Z80-MCB ( http://rio.early8bitz.de/hw/hw-boards-mcb.htm ) as a development platform for controlling a speech synthesizer in 1981-1982. It was later replaced by a Swedish Zilog based computer ABC-80. The first languages we used were Assembler and PL/M. I remember bending and disconnecting the timer interrupt pin from the CPU to stop it causing problem :)

    0
    None
    mike02557Howard3030

    Reply 1 year ago

    Congrats!!

    You are now a member of the

    "COOL Before Our Time" MASTERS CLUB.

    Welcome!! I still have a copy of the CPM source, did 8008 and 8080 before doing PDP-8 and PDP-11 code. Mike

    0
    None
    tom-iiFalney

    Reply 1 year ago

    I built an 8080 with 32k of memory, a bootloader (remember the SDK86?), a serial and parallel port. Used a VT100 or terminal program to access it.

    Had to write the assembly code for the bootloader myself. It worked much like an SDK86.

    https://en.wikipedia.org/wiki/Intel_System_Development_Kit

    0
    None
    kvonborstelmike02557

    Reply 1 year ago

    In the early 80's I built a "Big Board" Z-80 computer system, wrote a bootloader for the CPM op sys. The power supply weighed 20 lbs. I used 3 - 8" SSSD floppy disks. One ran CPM, one ran the current program and the 3rd was for data. The system weighed 70+ lbs. What fun...

    0
    None
    jwzumwaltkvonborstel

    Reply 1 year ago

    Aaa yes! The good old S-100 days. I had a S-100 chassi that weighed about 50lbs, and another chassi for two 8" floppy that weighed another 40lbs!

    Back when a "desktop" system required 20amps and weighed 100lbs.

    0
    None
    JoséC408

    1 year ago

    This remember me when I have a components and a bread board in plastic and not make it due to beuatifull of the bread board withou components. And not put all togheder
    But with this simple layout inspire to make the old microcontroller from 1971/2

    0
    None
    jwzumwalt

    1 year ago

    Please post your stripcad file :)

    0
    None
    mike.mcclure.3990

    1 year ago

    Wow... You've made it look so easy .... This could be the most fun I've had since I accidentally reversed the 12v supply on a TRS80-mod3 in 1978 and popped a few transistors..