Tinkerlog

Projects

Contact

About

Arduino on a prototype board

Arduino
on a prototype board

Posted by Alex on Jan 7, 2008 in Arduino, avr
| 21
Comments

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

21 Comments

follower
7. January 2008

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.

Alex
7. January 2008

Hi Phil,
I tagged the photo.
For the diagram of the protoboard, any
suggestions for a good software for that?
Cheers,
Alex

Whale
9. January
2008

This is cute one.
Good work

links for 2008-01-11 « Donghai Ma
11.
January 2008

[...] Tinkerlog Â» Blog Archive Â» Arduino on a prototype board (tags:
arduino development electronics howto programming hardware diy)
[...]

Alex
14. January 2008

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

Pages
tagged "diy"
20. January 2008

[...] bookmarks tagged diy Tinkerlog Â» Blog Archive Â» Arduino on a
prototyp… saved by 1 others     koold987 bookmarked
on 01/20/08 | [...]

links for 2008-03-16 « Where Is All This Leading
To?
16. March 2008

[...] Tinkerlog Â» Blog Archive Â» Arduino on a prototype board (tags:
arduino prototype breadboard microcontroller microchip atmega atmel pic)
[...]

Oli
24. May 2008

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.

Tim
24. May 2008

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.

Alex
24. May 2008

Tim,
have you checked if the capacitor is connected to the right line
(RTS)?
Cheers,
Alex

DIY-Arduino
1/2: ì½”ì–´ ë§Œë“¤ê¸° - HeliGuru’s Blog
3. August
2008

[...] íšŒë¡œëŠ” ì•Œë ‰ìŠ¤ì˜ ë¸”ë¡œê·¸ì— ê²Œì‹œëœ ë‚´ìš©ì´ë©° ê·¸
ì¤‘ ì•„ëž˜ì˜ ê·¸ë¦¼ì²˜ëŸ¼ ë¹¨ê°„ìƒ‰ ì ì„ ìœ¼ë¡œ í‘œì‹œëœ
ë¶€ë¶„ë§Œ [...]

Raijuu
» Blog Archive » Î³card
2. November 2008

[...] 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
[...]

Roland
22. November 2008

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.

Microcontroller based development boards
|
21. December 2009

[...] board shown above (based on the simplest Arduino similar to this one)
is used for creating LED lighting sequences. The three “momentary” push button
[...]

Make Your Own Arduino | The Inner Qube
16. March 2010

[...] http://tinkerlog.com/2008/01/07/arduino-on-a-prototype-board/
http://www.instructables.com/id/Build-Your-Own-Arduino/
[...]

Stephen
18. March
2010

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!

Electronics-Lab.com
Blog » Blog Archive » Arduino Breadboard Clone
1.
March 2011

[...] Breadboard Clone – [Link] Tags: Arduino, Atmega8, breadboard, ISP
Filed in Arduino | 184 views No Comments [...]

Dominik
31. May 2011

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

Alex
31. May 2011

Hi Dominik,
I just programmed the bootloader by hand, haven’t tried the
Arduino IDE for that.
Cheers,
Alex

?Arduino???ATmega8-16PU??Arduino???? | aGuegu's Studio
????
18. December 2011

[...]
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?????????????????????? [...]

Lars Jansen » Huge index of Arduino & Freeduino
Knowledge
25. July 2012

[...] [...]

Feed

Twitter

Follow @9600baud

Categories
Select
Category Allgemein  (1) Arduino  (21)
avr  (32) eclipse  (2) flex  (1) gps  (5) gsm  (5) instructable  (4) LCD  (1) led  (17) macbook  (2) misc  (18) PCB  (3) photo  (3) sensor  (3) simulation  (4) sound  (5)
winavr  (3)

Archives
Select Month
April 2014 January
2014 December 2012
September 2012
June 2012
May 2012 April 2012
March 2012 September
2011 July 2011
April 2011
March 2011 February 2011
January 2011
November 2010
September 2010 July
2010 May 2010
April 2010
March 2010 February 2010
January 2010
December 2009
November 2009
October 2009
September 2009 July
2009 June 2009
May 2009
April 2009 March 2009
January 2009
November 2008 August
2008 July 2008
June 2008
May 2008 April 2008
March 2008 February
2008 January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007 May 2007

Recent Posts

Keychain
made with ShapeOko

Boring
bar tool holder

Raspberry
Pi with RGB-Pixels and node.js

The
Almost Useless Machine

Home
Sweet Home

Flickr

Blogroll

Adafruit

Curious Inventor

Electronics Lab
Blog

Evil Mad Scientist

Finkbuilt

freeduino.de

Hack A Day

Hack N Mod

Hacked Gadgets

Interactive Matter

MAKE: Blog

mighty ohm

My 2µF

uC
Hobby

Friends

© 2014 Tinkerlog All
Rights Reserved.