Arduino is a great prototyping platform and most of you probably know already about it. If not, check out the Arduino pages and the Arduino playground and dive into it.
A couple of month ago I ordered my first Arduino board. It was one of the Diecimila revision. As I often try something on my breadboard, I found out, that it can get troublesome to connect the Arduino with the breadboard over and over again. Others found that out as well and have solutions for that. An Arduino clone that snaps nicely onto your breadboard, e.g. Boarduino or RBBB.
So what to do if these boards are far away across the ocean and it is holiday season everywhere? You may have guessed it, we build it on a prototype board.

Gather components
Luckily I had most needed components laying around. The ATmega168 is replaced by an ATmega8 but that is not a problem as the very first Arduinos were based on that chip.
- ATmega8, 16MHz, 8kB flash memory, 1kB sram memory
- 2 x 0.1u capacitors
- 2 x 22p capacitors
- 16MHz crystal
- 10k resistor
- 1k resistor
- red 3mm LED
- button
- 6 pin header for ISP
- 3 pin header for serial communication
- prototyping board
- USBtoRS232 converter
- ISP programmer
All components can be bought for about 4.50€, without the ISP programmer and the USBtoRS232 converter.
If I had a resonator, I would have taken that, instead of the crystal and the capacitors as it needs less space on the prototype board.
The USB to RS232 converter is called USB-2-bot and comes from another project. Any other converter would work as well, e.g. this USB-TTL-232-cable from adafruit.
Schematic
The schematic is mostly the same as for the Boarduino. I left out the power supply circuit. 
It has an ISP connector to program the bootloader and a serial connection used for uploading Arduino sketches. Also in place is a capacitor for the auto-reset function. It is connected to RTS line on pin 1 of the serial connection. The board should be feature compatible with Arduino.
On a breadboard
First you can assemble all parts on a breadboard.

Bootloader
All Arduinos are comming with an installed bootloader. If you build it yourself, you have to program the chip with a bootloader, at least once. That is why we need the ISP programmer.
First I tried to use the ADABOOT bootloader which is a modified version of the original bootloader. It has some modifications that makes it more comfortable, e.g. starts your sketch right after the upload is finished, without having to wait several seconds. Unfortunately I could not get it to work. I was able to compile it after adding some special #defines for the ATmega8. Programming it worked as well. I can see that the bootloader runs, as it blinks the LED four times, but it wont connect to the Arduino IDE. It always gets a read timeout.
So I took the bootloader that came with the Arduino IDE. It can be found at /arduino-0010/hardware/bootloaders/atmega8/ATmegaBOOT.c.
You can try to call make to compile the bootloader or take the precompiled ATmegaBOOT.hex file. I needed to adapt the DIRAVR path setting in the Makefile to make it work. I used only the compile target, so I just typed
make clean; make
That gives you a warning, that delay.h has been moved, but you can ignore that.
Fuses
Next thing is to get the fuses right. If you are new to AVR microcontrollers, these fuses
are used to configure some properties of the AVR chip, e.g. which clock to use: an
external crystal or the internal oscillator. These fuses are registers that can be programmed, just as you can program flash memory.
Programming the fuses is always fun. Every option you want to enable or disable is represented as a bit and grouped in two 8 bit values, high fuse and low fuse (for ATmega8). To make it hard to read, programmed bits are represented by zeros and unprogrammed by ones. To make it more fun, if you mix things up, you can “brick” your controller and it can get hard to revive it. And because you probably do fuse programming only once per chip, you may have forgotten most of it when you have to do it again.
Good for us, that fuse bits are provided in the Makefile that comes with the bootloader. As I use avrdude for programming, this is how my command line looks like.
avrdude -v -c usbtiny -p ATmega8 -C /Users/alex/etc/avrdude-tiny.conf -U hfuse:w:0xCA:m -U lfuse:w:0xDF:m -U lock:w:0xFF:m
This writes the high and low fuses and the lock bits. Lock bits have to be written to enable programming the bootloader.
Programming
Now we are ready to program the bootloader.
avrdude -v -u -p ATmega8 -c usbtiny -C /Users/alex/etc/avrdude-tiny.conf -U
flash:w:ATmegaBOOT.hex
When that is done, try to hit the reset button and you should see the LED at pin 13 blinking. That signals that the Arduino is ready to accept your sketch.
Testing it with an Arduino sketch
Next thing is to check if our Arduino wants to speak to the Arduino IDE.
Start your Arduino IDE and load the Blink sketch from the examples. Compile/verify it and hit the upload button.
By now, and if everything goes well, you should see the LEDs of your serial connection blinking, resetting the Arduino and the uploading the sketch.
Then your LED connected to pin 13 will blink once every two seconds.
On the prototype board
If you have tested your components and your software successfully, you can move on to solder it on a prototype board.


If you solder header connectors to a prototype board and try then to connect it to the breadboard, you will notice, that the header connectors are a bit short. I used my pliers to push the pins a bit. If you solder these, you will have a better connection to the breadboard.

Conclusion
This Arduino can be used for old school prototyping as well. Just use it as a standard ATmega8 and program it with the ISP connector. And it is one of the cheapest Arduino boards, that you can get.

Links
- Arduino home
- Freeduino index for everything related to Arduino and Arduino clones.
- Boarduino Arduino for the breadboard from Adafruit Industries.
- RBBB Arduino for the breadboard from Modern Device.
- Arduino XMAS hitcounter
| www.flickr.com
|

20 responses so far ↓
1 follower // Jan 7, 2008 at 10:57
Very nifty.
In case anyone else is looking for a view of the back of the board it’s here:
http://www.flickr.com/photos/8123185@N02/2173018429
(Took me a while to find as it’s not tagged ‘prototypeboard’…
)
Any chance of a nice diagram of the protoboard component placement/wiring?
–Phil.
2 Alex // Jan 7, 2008 at 23:59
Hi Phil,
I tagged the photo.
For the diagram of the protoboard, any suggestions for a good software for that?
Cheers,
Alex
3 Whale // Jan 9, 2008 at 09:08
This is cute one.
Good work
4 links for 2008-01-11 « Donghai Ma // Jan 11, 2008 at 05:17
[...] Tinkerlog » Blog Archive » Arduino on a prototype board (tags: arduino development electronics howto programming hardware diy) [...]
5 Alex // Jan 14, 2008 at 23:39
GREAT work – I’ve tried to do something like this myself, but I could never get it all together in my head. Your use of links and connections, and components under the IC itelf, it pretty damn smart.
Have printed out all the layout photos to make my own.
Thanks
Alex
6 Pages tagged "diy" // Jan 20, 2008 at 08:21
[...] bookmarks tagged diy Tinkerlog » Blog Archive » Arduino on a prototyp… saved by 1 others koold987 bookmarked on 01/20/08 | [...]
7 links for 2008-03-16 « Where Is All This Leading To? // Mar 16, 2008 at 01:23
[...] Tinkerlog » Blog Archive » Arduino on a prototype board (tags: arduino prototype breadboard microcontroller microchip atmega atmel pic) [...]
8 Oli // May 24, 2008 at 02:06
This was my approach to a tiny DIY breadboard arduino:
http://www.flickr.com/photos/ozel/1417666731/
Under the ATmega is the clock, on the left an smd reset switch.
9 Tim // May 24, 2008 at 03:03
I can’t get the auto-reset working on this. i have tried switching the attiny168 with the one from my boarduino and still nothing.
10 Alex // May 24, 2008 at 08:16
Tim,
have you checked if the capacitor is connected to the right line (RTS)?
Cheers,
Alex
11 DIY-Arduino 1/2: 코어 만들기 - HeliGuru’s Blog // Aug 3, 2008 at 13:23
[...] 회로는 ì•Œë ‰ìŠ¤ì˜ ë¸”ë¡œê·¸ì— ê²Œì‹œëœ ë‚´ìš©ì´ë©° ê·¸ 중 ì•„ëž˜ì˜ ê·¸ë¦¼ì²˜ëŸ¼ 빨간색 ì ì„ ìœ¼ë¡œ í‘œì‹œëœ ë¶€ë¶„ë§Œ [...]
12 Raijuu » Blog Archive » γcard // Nov 2, 2008 at 19:34
[...] great solutions out there, like the Boarduino, RBBB, Alex from Tinkerlog has even made one in a prototype board. All this examples work great and would solve the problem for me right way. But, you know, I never [...]
13 Roland // Nov 22, 2008 at 07:02
If you load the unit with Simple Message System from the archives at arduino.cc, you can control it from linux with my package of shellscripts. See http://user.cavenet.com/rolandl, download SMS1.tgz. Full IO and PWM control. AD is scaled to mV and formatted for import to most spreadsheets. Now with a GUI via the xdialog command. Proof-of-concept, easy to customize for your project. Modular, can handle multiple units if needed.
I am currently controlling 12 reed relays (elexp.com #22RD5) directly from the IO pins, to control AC relays.
14 Microcontroller based development boards | // Dec 21, 2009 at 05:51
[...] board shown above (based on the simplest Arduino similar to this one) is used for creating LED lighting sequences. The three “momentary” push button [...]
15 Make Your Own Arduino | The Inner Qube // Mar 16, 2010 at 03:06
[...] http://tinkerlog.com/2008/01/07/arduino-on-a-prototype-board/ http://www.instructables.com/id/Build-Your-Own-Arduino/ [...]
16 Stephen // Mar 18, 2010 at 15:40
If you want to use an ATmega32 here is an easy DIY development board that will help you to develop your skills with this microcontroller: http://www.microdiy.com/index.php?/atmega/diy-atmega32-development-board.html
Have fun developing new stuff!
17 Electronics-Lab.com Blog » Blog Archive » Arduino Breadboard Clone // Mar 1, 2011 at 11:49
[...] Breadboard Clone – [Link] Tags: Arduino, Atmega8, breadboard, ISP Filed in Arduino | 184 views No Comments [...]
18 Dominik // May 31, 2011 at 12:10
Hi Alex,
thank you for documenting your work. I was wondering how you uploaded a sketch from the Arduino IDE with the usbtinyisp to the micro. Did you setup a boards.txt file in your ~/Arduino/hardware/ directory?
I can upload sketches with the isp but, have to change the upload.using inside preferences.txt. It would be nice to switch that from the Arduino IDE Tools>Boards.
Thanks for your help.
Dominik
19 Alex // May 31, 2011 at 12:43
Hi Dominik,
I just programmed the bootloader by hand, haven’t tried the Arduino IDE for that.
Cheers,
Alex
20 ?Arduino???ATmega8-16PU??Arduino???? | aGuegu's Studio ???? // Dec 18, 2011 at 16:37
[...] Arduino_Testor???ATMEGA8-16PU-DIP28???Arduino???????Arduino???????????????????????????????????????????“Arduino_Testor”????????Arduino Prototype?????????????????????????????Arduino IDE????????????????????????Arduino??????????ATmega8?AVR??????Flash????????????????????????????? ???????@Togke???????arduino????19 – Atmega8????arduino???????Arduino on a prototype board?????????????avr?????????????????????? [...]
Leave a Comment