I have found multiple places that you can use your Arduino without a crystal, voltage regulator, USB interface, or even without the reset button. These can all make a difference in your project. With the Quasi-duino, I wanted to use the minimum possible components, minimum possible power, but still with the basic Arduino capabilities.
**This project will require you to download a new Arduino core for the Quasi-duino that I developed. It is provided later in the instructable.
Please feel free to post comments and questions.
Step 1: Parts
Needle Nose Pliers (Everyone should get a pair of these anyways)
The Quasi-duino core (will explain later)
The Narcoleptic library for Arduino (compatible with Arduino 1.0)
You can get all of the parts you need at Sparkfun:
** Essential Parts for Quasi-duino ($8.75)
Mini Breadboard http://www.sparkfun.com/products/7916 $3.95
Mini Push Button Switch - Tall (Most of you will want the tall button because it is easier to incorporate in your project) http://www.sparkfun.com/products/8605 $0.50
ATmega328p http://www.sparkfun.com/products/9061 COM-09061 $4.30
** The following items need to be purchased only once, and can be used to make multiple Quasi-duinos later ($3.10)
Resistor-330 Ohm http://www.sparkfun.com/products/8377 $0.50
16MHz Crystal (needed for bootloading, but not for the completed project) http://www.sparkfun.com/products/536 $0.95
22pf Capacitors (2) http://www.sparkfun.com/products/8571 $0.50
LEDs (2) http://www.sparkfun.com/products/532 $0.70
10uf Capacitor (for disabling the auto-reset on you Arduino UNO) http://www.sparkfun.com/products/523 $0.45
Extra Breadboard (nothin' special, just a basic one for LEDs)
Arduino UNO or later (Most of you will have one already) ** for users of older Arduinos, please see the bottom
LiPo (get these at Sparkfun too, they're cheap and rechargeable for your small projects!)
LiPo Charger (you'll need one of these if you're getting the LiPos)
** Note for users of old Arduinos: You can try an older Arduino in this project, but I have not tested them yet. You still should be able to do this project. I will make notes on the bottom of the pages that (I think) are different for older Arduinos.
Step 2: Assemble Away!
1. Insert the ATmega328p into the breadboard in the middle, on the end closest to you. Make sure the small dip is facing the top of the breadboard.
2. Connect a wire coming from GND (pin 8) of the left side to the very top of the breadboard.
3. Connect a wire coming from GND (this time pin 22) of the right side and connect it to the second highest point of the breadboard.
4. Take a piece of wire, enough to fit across the middle of the breadboard, and strip the whole length of it off.
5. Connect that wire across the middle of the breadboard at the second highest point.
6. Connect RST (pin 1) of the ATmega328p to the next pin on the breadboard higher.
7. Connect the top of the breadboard on the left to the next pin down.
8. Insert the button on top of the bare wire, in the middle, above the ATmega328p.
Step 3: Bootloading the ATmega328p
Then download the zip at the bottom of this page and put it in your hardware folder (if you do not have one, name a folder "hardware" and put it in your sketch folder). Click out of the Arduino IDE. Then click back into the Arduino IDE. Now, in the boards selection, you should see "Quasi-duino (8MHz internal clock)." This is the 8MHz internal clock selection of the ATmega328p. Now, put in your crystal from X1 to X2 (pins 9 and 10). Put your 22pf capacitors in, one between X1 and GND, and the other between X2 and GND. Select the Quasi-duino in the boards menu and burn the bootloader w/ ArduinoISP. After about a minute, you should see "Done Burning Bootloader".
In your current Arduino, most of them will have a 16MHz external clock (the oblong shape shiny silver thing that says SPK16.000G). You might ask, "why the extra components, it's just an extra cost." Well, the internal clock is not as accurate, just a few microseconds off. If you were programming for a drone or just using serial communication, you will want an external crystal (the clock) for more accuracy. In most of your regular projects, you will find that most do not require an external crystal.
Other electronics components you may not need (not included in the Quasi-duino) are: a voltage regulator (for more voltage being able to come into your Quasi-duino), LEDs (but you might want to check if it gets power once in a while, but it takes about 35mA of power to run continuously), or even your USB interface. Once you program your chip for the project, you could take off the USB interface, taking off about 15uA.
I have modified the current breadboard Arduino core for this project. Now, the Quasi-duino can compile code, and upload with ArduinoISP. Previously, this was not possible with the current cores available on the Arduino site. The code at the bottom of this page is the modified Arduino core that works with the Quasi-duino.
Go to the very end of this 'ible for error messages and how to fix them.
** For Duemilanove and older users, you will not need to insert the 10uf capacitor.
Step 4: Programming the ATmega328p
On the ATmega328p, notice that I put in an extra "p" on the end. This stands for pico-power. ATmel makes a number of these chips that are pico-power. The Narcoleptic library uses this feature because in the regular Arduino IDE interface, this is hidden.
Step 5: Error Messages :(
avrdude: stk500_recv(): programmer is not responding
This probably means that you are pressing the regular upload button when you're trying to upload to the Quasi-duino. Answer: Use the Upload Using Programmer button in the File tab in Arduino.
avrdude: initialization failed: rc=-1
Answer: double check the connections.
avrdude: Yikes! Invalid Device Signature
Answer: Did you put the ATmega328p in?
If you have any other error messages, post them in the comments section and I will update them here.
Step 6: Celebrate!
P.S. I'm only 11 years old!!!