The ATmega 328 chip is the heart of the Arduino Uno Board. Although it has limited memory, it has several general purpose I/O pins and six Analog to Digital pins. This makes the Arduino excellent for projects that read sensor values, or that control servos, motors or lights. The only problem with the Arduino Uno is that it does not fit on a breadboard.

There are Arduino compatible boards that fit on a breadboard, like the Arduino Mini, Arduino Nano and adafruit Pro-Trinket. Another option is to use the ATMega 328 chip directly on a breadboard:

This is the minimal configuration for the ATmega 328, in addition to the chip you need a crystal and a two capacitors. The crystal should be rated 12~16 MHz and the capacitors are usually 20pF. The only drawback is that in order to program the chip you may need to put it in a programmer circuit, or use an Arduino Uno to program the chip, as explained in this article

From Arduino to a Microcontroller on a Breadboard

The prototype above show the connections to a power source and ground, without specifying how that will be done. The next diagram shows a complete power source, including a switch and a voltage regulator:

And in a breadboard it looks like this:

This circuit is capable to drive LED’s or monitor sensors, but still we need and external programmer to modify the code inside the ATmega 328. One solution is to add USB capability, but USB requires a lot of engineering and registration. The ATmega is capable of serial communication (UART) and we can use that to connect our circuit to a computer, using a bridge technology created by FTDI (Future Technology Devices). A FTDI cable will convert the signal from a USB port to UART protocol. The cable has five different pins in six wires: Reset (green), Tx (yellow), Rx (orange), +5V (red) and Ground (Black and Brown). In the following diagram we show how you wire your ATmega 328 to have UART communication with a PC:

Notice that only one Ground pin is required for the FTDI connection, however the FTDI adapter from adaFruit has six pins and the last two are connected to ground. The breadboard will look like this:

This circuit is a full functional Arduino compatible board, but we did not have any advantage over an Arduino Uno board. What we need is a more compact solution in a board:

Order from OSH Park
As you can see you have a full functional Arduino compatible board that can be used in a breadboard, with enough space left on the breadboard for your project. By using the battery connector (9V) and the LM385 regulator this board is capable of delivering current for up to 1.5 amps., provided you put a heat sink on the LM385 chip.

To solve different problems I have created two additional flavors of the miniDuino:

The miniDuino-np. This is exactly the same breakout as the miniDuino but without the power supply circuitry. Ideal for problems where the power (5V) is already supplied to the breadboard:

Order from OSH Park

I also designed a miniDuino with an i2c bus. The four headers going out to the left of the pcb are GND, 5V, SCL and SDA. Look for a blog in the future about connecting a miniDuino to a Raspberry PI using the i2c bus.Order from OSH Park

To power the miniDuino-i2c there is also a power supply break out that can be daisy chained to the miniDuino-i2c, you just need to connect it to a 9V battery or a 9V battery eliminator and you can power up to three miniDuinos.

Order from OSH Park
You can daisy chain the miniDuinos and the power supply using any topology. Here you can see a miniDuino-i2c, power supply and another miniDuino-i2c. The power supply has well labelled pins to add the power to the breadboard rails if needed. For more than two miniDuinos, or to provide up to 7Watts of power, you may need to add a heat sink to the back of the LN7805.

You can order any of the miniDuino boards from OSH Park following the links embedded below the image