Introduction: YABBAS - Yet Another Bare Bones Arduino (on Stripboard)

This Instructable will demonstrate the building of a bare bones (and really inexpensive... less than $5) Arduino compatible module that can be put together on a small piece of stripboard and can be used either on a breadboard or independently.

The following links / similar projects were used as inspiration:
  * https://www.instructables.com/id/Small-form-factor-DIY-Arduino-on-stripboard/
  * http://tinkerprojects.blogspot.com/2012/06/minimal-arduino-on-small-stripboard.html
  * http://shop.moderndevice.com/products/rbbb-kit
  * http://txapuzas.blogspot.com/2010/07/paperduino-stripboard.html

The schematic is based off of the Arduino Pro Mini (http://arduino.cc/en/Main/ArduinoBoardProMini) and only differs in a few minor (optional) ways:
  1. This design uses a more powerful voltage regulator
  2. This design uses a more precise crystal (instead of ceramic resonator)
  3. This design ditches the reset button (do you really need it?)
  4. This design uses a 1k (instead of 10k) resistor for the power indicator LED

Prerequisites / Tools Required:
  * Soldering Iron with fine tip
  * Solder (fine) & Flux
  * Utility Knife
  * Mini needle-nose pliers (optional, but useful)
  * Multimeter (or volt meter)
  * An existing Arduino, or any other AVR programmer (needed to upload the bootloader)
  * A USB-to-Serial TTL adapter (used to upload programs after the bootloader is in place)

Parts List (with an inexpensive source recommendation):
  * $0.22 - 19 row x 8 column stripboard (less than 1/3 of a 94x53mm stripboard)
      > http://www.taydaelectronics.com/small-stripboard-94x53mm-copper.html
  * $1.00 - 3.50 - Atmega328P (or the ATMega168 or ATmega8 if they are enough for your needs)
      > http://www.taydaelectronics.com/atmega328p-pu-atmega328-microcontroller-ic.html
      TIP: You can get the older ATmega8 chips on eBay for around $1 (in a 10 pack) these days,
              or the latest and greatest ATmega328P chips on eBay for around $2.20 (in a 5 pack)
  * $0.11 - 28 pin DIP IC socket
      > http://www.taydaelectronics.com/28-pin-dip-ic-socket-adaptor-solder-type.html
      TIP: You can substitute 2x 14-pin lengths of SIP/DIP socket adapter for a higher quality socket
  * $0.23 - LM7805 5V voltage regulator
      > http://www.taydaelectronics.com/lm7805-l7805-7805-voltage-regulator-ic-5v-1-5a.html
  * $0.10 - 16 MHz crystal
      > http://www.taydaelectronics.com/16-000-mhz-16-mhz-crystal-hc-49-s-low-profile.html
  * $0.02 - (2) 22pF ceramic disc capacitors
      > http://www.taydaelectronics.com/10-x-22pf-50v-ceramic-disc-capacitor-pkg-of-10.html
  * $0.03 - (3) 100nF / 0.1uF ceramic disk capacitors
      > http://www.taydaelectronics.com/10-x-0-1uf-50v-ceramic-disc-capacitor-pkg-of-29.html
  * $0.03 - 100uF 10V electrolytic capacitor
      > http://www.taydaelectronics.com/100uf-10v-105c-radial-electrolytic-capacitor-5x11mm.html
  * $0.03 - 100uF 25V electrolytic capacitor
      > http://www.taydaelectronics.com/100uf-25v-105c-radial-electrolytic-capacitor-6x11mm.html
  * $0.02 - Red LED 3mm
     > http://www.taydaelectronics.com/led-3mm-red.html
  * $0.02 - Green LED 3mm
     > http://www.taydaelectronics.com/led-3mm-green.html
  * $0.012 - 330 ohm 1/4 watt metal film resistor 1%
     > http://www.taydaelectronics.com/330-ohm-1-4w-1-metal-film-resistor.html
  * $0.012 - 1K ohm 1/4 watt metal film resistor 1%
     > http://www.taydaelectronics.com/10-x-resistor-1k-ohm-1-4w-1-metal-film-pkg-of-10.html
  * $0.012 - 10K ohm 1/4 watt metal film resistor 1%
     > http://www.taydaelectronics.com/10-x-resistor-10k-ohm-1-4w-1-metal-film-pkg-of-10.html
  * Header Options:
       * $0.39 - DIP/SIP socket adapter (great for wires or for building a high quality socket)
           > http://www.taydaelectronics.com/30-pin-dip-sip-ic-sockets-adaptor-solder-type.html
       * $0.24 - Female PIN header
           > http://www.taydaelectronics.com/40-pin-2-54-mm-single-row-female-pin-header.html
       * $0.15 - Male PIN header
           > http://www.taydaelectronics.com/40-pin-2-54-mm-single-row-pin-header-strip.html
  * Shipping (from taydaelectronics): ~$1.20
  * TOTAL (without shipping): ~$2 - $4.75

Step 1: The Stripboard Design

Note: DIY Layout Creator was used to produce this design
   > https://code.google.com/p/diy-layout-creator/

Step 2: Prepare the Stripboard for Soldering

Using a utility knife cut the copper traces as indicated.

Keep in mind the board will be a mirror image when you flip it over.

I find it easiest to first score the board trying to just barely cut through the copper.  Then, I angle the knife a bit (to cut a v-groove) and proceed to make the cut deeper from both sides.

Be careful so that you leave enough copper to solder the holes on either side of any cut, while ensuring that enough copper is removed to ensure the copper is truly separated from either side and won't bridge when soldered.

Step 3: Solder the Ground and Positive Voltage Wires

1. Cut the ground and positive voltage wires to length and strip the ends.

I use the wire from an old RJ45 network cable.  Make sure the wire is solid and not stranded.

2. Place the wires into the stripboard as indicated.

You may find it difficult to get two wires into one hole.  I find that taking a mini needle-nose pliers and mashing on the ends of both wires a bit helps.

3. Double check that the wire placement matches the design and that the metal in the wires are not touching each other.

4. Finally, flip the board over and solder the wires in place.

Step 4: Solder the DIP IC Socket

Place the DIP IC socket (or 2x 14-pin DIP/SIP socket adapters) and solder them in place.

Step 5: Solder the Resistors and Ceramic Capacitors

1. Bend the leads of each component based on the distance it will need to span.

Note:  A easy to build bender jig made from a spare piece of protoboard can come in handy here (see picture).

2. Place each component into the stripboard in the appropriate location.  Pay careful attention to the components that share a hole.

3. Double check that each component is properly placed according to the diagram.

4. Proceed to solder each component and clip the leads to a reasonable length.

Step 6: Solder the LEDs and Capacitors

1. Place the LEDs and electrolytic capacitors according to the diagram.

Note: LEDs and electrolytic capacitors are directional and must be placed in the proper orientation.

  * For LEDs, place the Cathode towards ground.
    Looking inside an LED, the Cathode is usually the larger pad, but the smaller lead.
    (see picture, source: http://www.societyofrobots.com/electronics_led_tutorial.shtml)

  * Electrolytic capacitors should have a marking on the label ('-')
     which indicates which lead should be placed towards ground.

2. Double check that the LEDs and capacitors are placed properly.

3. Proceed to solder them in place and cut their leads to a reasonable length.

Step 7: Solder the PIN Headers

1. Cut the PIN headers of your choice in sections of 3-pins, 5-pins, 12-pins, and 14-pins.

You can use various types of PIN headers here (or none at all) depending on how you want to use the board.

Choices include:
  * Standard female headers: Good for plugging in sub-boards that use standard male headers.
  * Standard male headers:  Good for plugging into breadboard.
  * SIP/DIP socket adapters: Good for plugging in solder-less jumper wires.
  * No headers:  Good for direct soldering of wires/sub-boards for a more permanent installation.

I wanted to use mine on a breadboard, so I used standard male headers sticking all the way out the bottom.

TIP:  I made a special PIN header to allow easy plugging in of my USB to Serial TTL adapter.  To make this, I took a standard male 12-pin header, removed 6 of the pins and substituted longer pins in their place (see picture).

2. Place the PIN headers in their appropriate locations according to the diagram.

3. Proceed to solder the PIN headers in place.

TIP: I have found that PIN headers are MUCH more easily soldered if you use a little bit of flux. I have also found that this helps hold the PIN headers in place until you can get them soldered.

Step 8: Solder the Crystal and Voltage Regulator

Finally, place and solder the crystal and voltage regulator according to the diagram.

The soldering portion is now done!

It is a good idea to clean up the back of the board at this point.  I use an old toothbrush dipped in rubbing alcohol and vigorously scrub the remaining flux and solder residue.

Now is also a good time to add solder to any joints that may need more.

Step 9: Test the Board

Before inserting the 'relatively' expensive ATmega chip into the board it is a good idea to verify that a few things work as expected first.

Plug in an appropriate voltage source (~7-20 volts) and connect it (appropriately) to the GND and VIN pins.

Use a multimeter to verify that the voltage between the GND and VCC pins is around 5 volts.

Also, verify that the red power indicator LED is illuminated.

Step 10: Upload the Bootloader (optional)

Note:  This step can be skipped if the ATmega chip you are using already has an appropriate bootloader uploaded to it.

1. Connect the AVR programmer of your choice.

Connect the GND, VCC, /RESET, MOSI, MISO, SCK pins.

Note: Which programmer to use is outside the scope of this Instructable.

I happen to be using a custom built programmer based off of the popular USBasp device.

TIP: If you already have a working Arduino, you can use it to program the bootloader into this ATmega chip.  Take a look around the internet at one of the many tutorials for how to do this.

2. Open the Arduino IDE.

3. Verify that the proper programmer is selected (under Tools > Programmer)

4. Verify that the proper board is selected (under Tools > Board)

  * For an ATmega8, use the 'Arduino NG or older w/ ATmega8'
  * For an ATmega168 use the 'Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168'
  * For an ATmega328 use the 'Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328'

5. Upload the bootloader (using Tools > Burn Bootloader)

At this point the Arduino IDE will take a minute or two to connect to your device through the programmer, verify the chip, and upload the bootloader.  You should see the green activity LED flash a bunch of times.


UPDATE:

I found that the Optiboot bootloader is much nicer to use than the one that comes pre-packaged with the Arduino IDE.

https://code.google.com/p/optiboot/

Some of the improvements include:
  * It uses only 512 bytes of flash instead of the 1 KB or 2 KB that the Arduino bootloader uses
  * It is faster to upload sketches by using a much faster baud rate (115200 instead of 19200 in my case)
  * After an upload or reset, it runs your sketches much faster

In order to use this:

1. Download and extract the .zip file into the hardware directory in your Arduino sketches directory.  Create the hardware directory if it doesn't exist.

2. Restart the Arduino IDE

3. Choose one of the new board that show up under Tools > Board

  * For an ATmega8, use the '[Optiboot] Arduino NG or older w/ ATmega8'
  * For an ATmega168 use the '[Optiboot] Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168'
  * For an ATmega328 use the '[Optiboot] Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328' 

4. Verify that the proper programmer is selected (under Tools > Programmer)

5. Upload the bootloader (using Tools > Burn Bootloader)

Step 11: Upload a Test Program

Finally, we should now be able to connect to and use the device like a normal Arduino.

Let's connect a USB to Serial TTL adapter and upload a test program using the Arduion IDE.

1. Connect the USB to Serial TTL adapter.

Connect the GND, VCC, DTR, RX, TX pins.

Note: Which USB-to-Serial adapter to use is outside the scope of this Instructable.  Just ensure the adapter exposes the DTR line as it is needed for the auto-reset process.

I happen to be using a CP2102 adapter from eBay ~$2.35 (http://www.ebay.com/itm/181164801515).

2. Open the Arduino IDE.

3. Open the 'Blink' example (File > Examples > 01.Basics > Blink)

4. Verify that the proper board is selected (under Tools > Board)

  * For an ATmega8, use the 'Arduino NG or older w/ ATmega8'
  * For an ATmega168 use the 'Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168'
  * For an ATmega328 use the 'Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328'

5. Verify that the proper Serial Port is selected (under Tools > Serial Port)

6. Upload the program (using File > Upload)

At this point, the Arduino IDE will take a minute or two to compile the program, reset your device and then connect to your device's bootloader through the USB-to-Serial adapter, verify the chip, upload the program, and finally reset your device to run the new program.

If everything is successful, you should (eventually) see the green LED start blinking on and off at about a one second interval.

CONGRATULATIONS!  You now have a $2-5 breadboard friendly bare-bones Arduino ready to add to your toolbox or use for your next project.

Step 12: Variations

It is possible to reduce the parts list even further depending on which features one finds important.

Here are some examples:

1. Don't populate the voltage regulator or 25V 100uF capacitor between GND and VIN if you are always going to supply this board with a stable 5V source (through the GND and VCC pins).

2. Don't populate the 1k resistor or red LED if you don't want a power indicator.

3. Don't populate the 330 ohm resistor or green LED if you don't want the activity indicator.

4. Don't populate the 16 MHz crystal or 2x 22pF capacitors if you can make due with the internal RC oscillator.

Note: This is an advanced usage scenario that would also require a custom fuse selection, bootloader, and modifications to the Arduino source files.

Alternative: Replace the 16 MHz crystal and 2x 22pF capacitors with a 16 MHz ceramic resonator if you don't need the precision that a crystal provides.

5. Don't populate the 100nF capacitor between the AREF and GND pins if you aren't using the ADC.

6. Don't populate the 100nF capacitor between the /RESET and DTR pins if your USB-to-Serial adapter doesn't need it (or already provides it)

You might be able to do away with the 100uF 10V capacitor between GND and VCC if your power source is located close enough and is stable enough.

So, bare minimum (for a stable system), would be the ATmega chip (obviously), the 100nF capacitor between the GND and VCC pins, and the 10k resistor between the /RESET and VCC pins.

Kit Contest

Participated in the
Kit Contest

Arduino Contest

Participated in the
Arduino Contest