Instructables
Picture of Arduino from Scratch - Digital Thermometer
DSC00240.JPG
DSC00221.JPG
DSC00222.JPG
DSC00227.JPG

I have loved making projects with Arduinos, but at $30 a piece your projects can get expensive. So I want to show you how you can make your own Arduino from scratch and save money doing it. Make your own Arduino for around $8. For this instructable I show you how to make one on a breadboard and with it make a digital thermometer.


 
Remove these adsRemove these ads by Signing Up

Step 1: Parts you need for the Arduino:

Picture of Parts you need for the Arduino:
  • Full Size Breadboard ($8 adafruit.com)
  • 22 AWG Wire or jumper wires ($6 adafruit.com)
  • 1 - 7805 Voltage Regulator ($0.18 taydaelectronics.com)
  • 2 - LEDs ($0.02 each taydaelectronics.com)
  • 2 - 220 Ohm Resistors ($0.10 each taydaelectronics.com)
  • 1 - 10k Ohm Resistor ($0.10 taydaelectronics.com)
  • 2 - 10 uF Capacitors ($0.01 each taydaelectronics.com)
  • 1 - 16 MHz Clock Crystal ($0.07 taydaelectronics.com)
  • 2 - 22 pF Capacitors ($0.10 for pack of 10 taydaelectronics.com)
  • 1 - Small Momentary Normally Open "off" Button ($0.05 taydaelectronics.com)
  • 1 - Breadboard-friendly 2.1mm DC barrel jack and 9V Wall Wort with 2.1mm Plug (2.1mm jack $0.95 adafruit.com)
  • 1 - ATMega328 with Bootloader ($6 adafruit.com or cheaper other places if you can add your own bootloader)
Many of these parts you can also buy from Radio Shack.
Assuming you have a breadboard, wire, and a way to program (see step 4) the Arduino parts cost a total of $7.71 +shipping.
BeverlyJ12 months ago

Can anybody do this or only for those people who know some technical knowledge and stuff? I would like try to make one.

ramblreb1 year ago
Would I be able to add more temp sensors to this project and if so what would I have to add to the sketch to get it to scroll through the different sensors?
lmajer1 year ago
Can this be modified to mesure soldering iron tip temperature?
How do I use a thermistor (one that has variable resistance) with this? I already have a program that returns the resistance of the thermistor, how do I make that into degress F? (or Celsuis, I know how to convert)
arabi22 years ago
is there much difference between tmp36 and tmp35 ?!!?.....
arabi22 years ago
photo of the circuit
picture000.jpg
arabi22 years ago
the LCD isn't working.... all connections are good... programmed and ( done compiling ) ......... it doesn't power on at all :(
yes........
What if I used a 16x2 character oled display from adafruit? Should I use the liquidcrystal library as written in your code or should I swap it with the library adafruit wrote specialy for the oled? Would swaping the librarys even work?

Link to the display found Here
I haven't even seen that OLED before. It looks really cool. From a simple look it might work with the LiquidCrystal.h library but it apparently has it's own library so you should give that a try instead. Let me know how it works.
Cool, I'll let you know
all connections are OK ... but for Bin 2.... isn't connected.. is there any prob. ?!!
matt.e.jenkins (author)  omar hussein2 years ago
pin 2? For the LCD? that one goes to 5v.
LCD didn't work .. what should i do !!
matt.e.jenkins (author)  omar hussein2 years ago
It must be hooked up wrong. If my instructions are confusing, you should try
http://learn.adafruit.com/character-lcds
I have a question. What kind of Board do you have to select when using a FTDI friendly when programing it?
matt.e.jenkins (author)  Maraudergal9152 years ago
You can select Uno.
But when I select Uno I am still getting a stk500_getsync(): not in sync:resp=0x00
matt.e.jenkins (author)  Maraudergal9152 years ago
That is strange. Troubleshooting errors like that is a bit beyond me. Did you get the FTDI Friend from Adafruit? They have helpful forums in which you can ask a question. I would try shuting down the PC and trying again. And maybe trying a different computer if you can. I have had issues like that before that I could not fix, but it worked on a different computer. Sorry, that's not much help.
Thank you sir and Yes I had gotten the FTDI Friend from Adafruit. We had went to go buy the Arduino bored model for the Uno just to see if we could get it to program and to see if it was just something we were doing wrong, but we had gotten it to program perfectly but every time we try to do it on the one we built it just keeps giving us the same not in sync. Thank you for your help sir.
I had this problem and was able to solving it by disconnecting reset line from the FTDIFriend (pin 1 on the arduino, pin 6/RTS on the FTDIFriend) and instead manually pressing the reset button on the breadboard right after clicking upload on my computer.

(I tried pressing the reset button while the FTDIFriend was uploading and noticed that nothing happened until it decided that the upload had failed, then the Arduino would reset.)
you could add a 0.1uf capacitor between the reset pin and the corresponding pin on the FTDI friend and it should work
I had the same problem, then I examined a schematic for the Duemilanove and noticed a couple of things missing from most tutorials.

First, add a 1k resistor inline with the rx/tx lines going to the microprocessor.

Secondly add an ac coupling capacitor (try 4.7uf or somewhere around there) in series with the DTR line going to the reset.

The bootloader works by bringing DTR low first, which should reset the device. The bootloader is always loaded after reset so after DTR is brought low it begins to try to communicate over the UART. If DTR never goes low the device will never reset and whatever sketch is running will keep running (and therefore the bootloader will not be running).

Finally, make sure you actually have the arduino hex image loaded on the device. There really is no easy way to do this - when I'm in doubt I drop it in my Duemilanove (mine is the DIP type and the chip isn't soldered in, so it's easy to take it out and replace with another) and see if I can download a sketch. If I can't download a sketch I usually plug my MkII ISP into the arduino board and download the correct hex file using winavr.
The board type should match the chip you are using (and the bootloader image). So, if you are using a 2650 you should pick the mega board. If using a 328 or 168, pick the uno. Take a look at boards.txt file to see what information is specified for each board type. These are usually maximum image size, cpu frequency, fuses, bootloader information, etc... There is nothing in there about what type of USB->Serial device you use. You specify that by choosing the correct com port. The device driver for whatever FTDI hardware you are using takes care of everything else so the device will output rs232 at ttl levels and look like any other rs232 terminal to the atmega uart.
Thank you as well. I think I understand alot better then I did.
wild. i didnt know they were so simple to build, thats interesting.
If you can live with the built in RC oscillator you can reduce the BOM even more by eliminating the crystal and capacitors. If you want a little more stability (but not as much as a crystal) use a ceramic resonator - many have built in capacitance so external capacitors are not required. Many microprocessors share similar small BOM configurations - PICs have a built in RC oscillator - same BOM (except for the chip of course).
cool!
could you use an arduino uno and use the same code for the FTDI friend and the project still work?
Yup. You can use your arduino UNO. It would work. Let me know if you have other questions.
insmac3 years ago
Hmm...any particular reason not to use the Boarduino from adafruit? At $17.50 for all the parts and PC board to mount them on...
matt.e.jenkins (author)  insmac3 years ago
I know of it and adafruit sells great things. But I think it is fun to create things from scratch. Plus it helps me and others know how it works.
I would also add that if someone wants to create a device which they plan to produce several of, knowing how to make this from scratch lets them integrate it all into one board, giving it a more unified professional design. Also in that case the savings add up.