Instructables

UDuino: Very Low Cost Arduino Compatible Development Board

Featured
Picture of uDuino: Very Low Cost Arduino Compatible Development Board
Arduino boards are great for prototyping. However they get rather expensive when you have multiple concurrent projects or need lots of controller boards for a larger project. There are some great, cheaper alternatives (Boarduino, Freeduino) but the costs still add up when you need many of them.

This is a way, after about $25-$30 initial investment, to build sub-$10 Arduino-compatible boards with very little extra time investment on each.

Note that the basic idea here (Arduino on a breadboard) has been done for quite some time (e.g ITP Arduino Breadboard instructions); however the cable adapter build & usage instructions here help absolutely minimize the parts count for each core.

This project requires knowledge of soldering and basic electronics, and you should have at least some experience already with Arduino development. I don't suggest this as a first electronics project.

note: I pronounce uDuino "moo DWEE noh"

Added 02-05-08: (for pretty advanced folks) One of the tools I built with this is a logic capture tool -- kind of a basic logic analyzer. I developed this to troubleshoot communications links. Needs a gui interface, but doubt I'll get around to it any time soon. Still dang useful in the right hands.

Added 06-23-09: I'd like to point out the RBBB's from Modern Device for anyone who wants something with solder, but also super inexpensive -- especially if you get the bare boards and buy parts in bulk. Also their USB-BUB is a cheaper alternative to the FT232 cable.
 
Remove these adsRemove these ads by Signing Up
1-40 of 47Next »
daviidv3 years ago
Can i make this with ATMega 328 with Arduino bootloader? Can i connect it same way like this? And then can i use it like normal Arduino?
12150w3 years ago
If you already have an arduino and wish to use an ATMEGA 328 or 168 on a breadboard by itself, go to http://arduino.cc/en/Tutorial/ArduinoToBreadboard. You can use an arduino to not only load the bootloader, but also program the chip. If you already have an arduino this would be cheaper than buying or making an FTDI to usb device.
shaadmahmud3 years ago
here is how u can make an usbasp.. http://must-info.blogspot.com/ i tried a lot to use usbasp and make it in easy way
bigjeff54 years ago
If you're concerned about your oscillator tolerances, you should be using crystal instead of ceramic. 0.5% tolerance is much better than the internal oscillator, but crystal has 0.001% tolerance, and the cost is about the same (70c'ish). Plus, the crystal kind are only two pins, which are way, way easier to install on solderless breadboard. You can run 20mhz as well if you want, the ATmega can handle it (that's it's peak rated speed). Your timing functions will need to be adjusted to compensate if you do run it that fast, though.
tymm (author)  bigjeff54 years ago
Main reason I picked a 3-pin ceramic resonator is because it won't need extra capacitors (in a breadboard there will probably be enough capacitance for it to work anyhow -- though if moved to prototyping board the circuit may well stop working). Ceramic resonators give less accuracy, it's true... though for solid serial communications they're absolutely fine across standard temperature ranges, which the internal oscillator isn't guaranteed to be. And they actually are a bit cheaper, though it's true the difference isn't a big deal for 1-offs. But totally agree if higher precision is needed that a crystal is a better choice.
bigjeff5 tymm4 years ago
That's a good point. Excellent Instructible tymm.
12150w4 years ago
Can you use the FTDI basic breakout instead of the FTDI cable. The breakout brings out the DTR pin as instead of the RTS pin. It does have the same pinout.
tymm (author)  12150w4 years ago
You certainly can use an FTDI basic breakout -- from my understanding though, the DTR will work under Windows but not under OSX... in which case you'd have to just add a switch on the reset line (to ground) and manually reset when loading code, just like in the old days. It has been a while since I've tested DTR vs. RTS on Windows vs. OSX though. (And never played much with Arduino under Linux, so if that's your development platform... not sure).
celguero4 years ago
hi there:

thank you for the response. I am trying to build a Lilypad with theATMega 168.
I am drawn to make one because it involves a minimum number ofparts and can be quite small. I make toys, so the smaller theelectronics the better. I was wondering if you could give me some clueson wire it and also how to bootload it. Since all the surface mountATMega 168 do not seam to come bootloaded already.

THanks so much!!!

tymm (author)  celguero4 years ago
 i would actually start with the arduino pro mini schematic:

arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

(note that you can find schematics & eagle pcb files for thestandard arduino boards on the arduino site).

For bootloading you'll need a programmer -- e.g. the USBtinyISP (fromAdaFruit) or the AVRISPmk II which you can get from e.g. mouser.com) --I prefer the mk II just because i've had reliability issues with thetinyUSB in certain situations.  with current arduino software,loading the bootloader is easy, pretty much just hooking the programmerto the ICSP connector, powering the board and clicking the "burnbootloader" selection from the arduino software (under"Tools").  You'll have to select the board type beforeyou do so to make sure it gets the right bootloader.
celguero4 years ago
hi there:

Is this the same chip as the one in the mini arduino. Would I be able to get the surface mount parts and wire the ATMega168 (square one)the same way? please let me know.

thanks!

tymm (author)  celguero4 years ago
  yep. just match up with the pinout in the datasheet for that package...

generally a good idea when laying out a board with an AVR to also add an in-circuit programming header. seewww.atmel.com/dyn/resources/prod_documents/DOC0943.PDF for the pinout on the standard connector. you can pretty much jump ahead and look at figure 2
clark5 years ago
I already have an arduino duemilanove, and i know you can pull the chip from the board and use it as is, so are the parts in step 4 the barebones stuff to simply run the board? I plan on programming my chips in my arduino and then placing them into a circuit.
tymm (author)  clark5 years ago
Yep; that's the very basics. If you're doing pro-level stuff (art installations, etc) it's a good idea to do some more decoupling (.1 uf capacitors between RESET & GND, AVCC & GND and the second VCC line and GND) but for this kind of a minimal setup things will generally run fine without.
clark tymm5 years ago
I'm having trouble finding an oscillator, if you could point me in the right direction, with a link to a mouser or digikey part, even a manufacturer part number that would help so much, thanks!
tymm (author)  clark5 years ago
Try FCR16.0M6 for cheap & easy... Actually "resonator" is the more precise name for these guys; i'm a bit loose with the terms (and apologize for that) but "oscillator" is more specifically used for the parts that have a circuit for creating an output wave in addition to the crystal/resonator/etc... so you hook up power and they directly spit out clock pulses (or sine waves, etc). the AVR processors have most of this circuitry built in so you only need a crystal or a resonator (and in some cases -- though not with the part mentioned above, since it has them built in -- a few capacitors), rather than a whole external oscillator for your CPU clock.
clark tymm4 years ago
fyi, on step 4, your 10k resistor is still going from pin 1 - 10
clark tymm5 years ago
Okay, thanks! btw, great instructable!
TechMidden5 years ago
Good work.
Do you know if this could be used to programme ATtiny MCUs? There's a fellow who has modified the Arduino IDE to support these devices. (See http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254).
Thanks,

TM

mubot5 years ago
i cannot get mine to work.... and i dunno why ... it's soldered up nice and clean...checked all pin connections with my meter .... i just cant seem to get it to upload a sketch.

im told the error im getting is a "generic" error, basically stating there is no connection between the chip and the computer

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

im using XP (tried on 2 machines same outcome)
i also tested on a mac using osx ...also didnt work...

im using a 2 pin 16mhz xtal with the pins going to the chip as well as being tied to ground via a 22pf cap on each. (couldnt find the 3 pin you used)

i was able to program the chip via ponyprog with my parallel programmer and the chip and parts seem to work just fine....

just cant get the darn thing to be seen with the ftdi cable/programming adaptor

thoughts??

=Rik
tymm (author)  mubot5 years ago
Which bootloader did you put on the chip? (with 16mhz osc you need the diecimila or similar, not lilypad)... did you make sure to set the fuses correctly when you programmed the bootloader (making sure to use an external oscillator)? generally for 16mhz arduino hfuse should be 0xdd, lfuse 0xff, efuse 0x00. if you hook up an LED between pin 19 and ground (long lead to pin 19, short lead to ground) does it flash when you apply power / hook up the cable?
mubot tymm5 years ago
i got the chip from sparkfun already bootloaded for the external OSC. yes, i do get the blinking when i hook up the cable...and when i remove the jumper i dont ... so it seems as if things are working at least that far.
tymm (author)  mubot5 years ago
Can you verify that you've got the Diecimila selected in the "boards" selection under "tools"? Under windows, also see the next comment -- that apparently the auto-reset doesn't work by default -- you shouldn't have this problem under OSX though.
mubot tymm5 years ago
Duemilanove is selected as my board.....and since i have other arduino chips that i use... my "Set RTS On Close" is enabled. i have tested on a mac..no luck there either... i really appreciate your assistance!
mubot mubot5 years ago
got it working.... tried again after ordering another pre bootloaded chip and it worked great!!!! turns out there was an issue with the bootloader that was burned to the original chip i was testing.....
tymm (author)  mubot5 years ago
Great; thanks for the update!
joetronica5 years ago
my uDuino works, but i missed the AUTO-RESET feature. when i will upload sketches: first time it works fine - later nothing is happen. the arduino IDE give me some error messages. i think the solution is: the FT232RL USB-TTL cable not provides the DTR-line (used by standard arduino for autoreset) but provides the RTS-line (green wire). for use the FT232RL USB-TTL programmingadapter with the uDuino set on the Device-Manager (for example WinXP) the following modification: / USB Serial Port (COM...) / Port Settings / Advanced Settings / ENABLE: Set RTS On Close that makes a short low impulse on the RESET-pin by starting upload sketches. AUTO-RESET works!!! uploading sketches works anytime!!! YAAAH Johannes
tymm (author)  joetronica5 years ago
cool! i've been using OSX and it seems to work fine with the RTS line as reset without any changes, but it makes sense that Windows might do things differently; thanks for the workaround info.
mubot5 years ago
would any changes need to be made if i was using a FTDI model TTL-232R-5V cable instead?
tymm (author)  mubot5 years ago
nope; the 5v is the same one. the 3.3 v cable also works fine from my experience
dnhoshor5 years ago
Your project has inspired me try my hand at this interface. I'm waiting on the headers. Thanks for the idea!
Maniacy5 years ago
Oh c'mon! This is like THE tutorial I was looking for, plug'n'program... and then you give me this photo? Seems as if would have to figure it out by myself after all... Good tutorial anyway, thx!
gib0r Maniacy5 years ago
Read a datasheet.
Bongmaster5 years ago
i just noticed a bit where u say to connect the resistor between pins 1 and 10 wen it should be 1 and 7? a typo methinks? ;) altho it does still work if ure not using an external osc or crystal., but its prolly not good :P
tymm (author)  Bongmaster5 years ago
You are absolutely right -- sorry about that. Correcting it now.
Bongmaster tymm5 years ago
no probs :3 it just occurred to me after making a circuit including it :P i will correct the circuit (that has been working as lilipad for months) too :D
THANK YOU!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cr0ybot6 years ago
Added to Arduino Group! ;D
tymm (author)  cr0ybot6 years ago
cool -- btw i would really like to get feedback from anyone who's built one to make sure that it all makes sense. and if anyone runs into any difficulty, i'd be happy to try to explain any hard parts and help get it working.
Bongmaster tymm6 years ago
works ok with me. i got one running now with a 22 MHz crystal to see how it would run (just blinking as its an old chip that went wrong and i managed to upload a new bootloader to it. but it wouldn't take any sketches, will try burning one via the programmer cable next time) it's running from usb power direct to chip and its cold (had it on 16 MHz all night and its still stone cold) Seems happy with 23MHz but i want to try it with another sketch if i can get one on there :)
1-40 of 47Next »