Three months ago I submitted instructables into one of the challenges, and was selected to received Free 3D print. I chose to have my 3x3x3" 3D print instead of a famous 3D instructable robot.
My 3D print got delivered in the 123D box, to my door three week ago. Also included in the box are an instructables patch and stickers.
Thank you very much for the Free3D Print program and everyone behide this program, otherwise I won't be able to see my project moving forward to this point.
And also I got my prototype board made.
See picture 1, 2, and 3.
Updated May 30, 2012
Recently I got some comments (offline) from an expert who is in electronics field and owns a company for more than 40 years, aka gatech, regarding the way I described this instructables. Gatech is also helping me editing this instructables and my other instructables as well.
I looked into it. (I'm not originally speaking English as original language.) I realized that the comments are all make senses, i.e grammar, the way I phrase the sentences. So I decided to revised this instructable accordingly.
Thanks gatech, I do really appreciated your help.
Updated April 11, 2012
Added Schematic and Board Images, Top Layer, Bottom Layer and Both Layers, Bill of Materials(BOM).
There are so many different sizes and shape of Arduino and Arduino compatibles available out there. Arduino is not limited to one particular processor, the widely use micro-controller are Atmega8, Atmega168, Atmega328, Atmega1280, and Atmega2560.
Since I am familiar with Atmega328 the most, I choose Atmega328 as the brain of RevIO.
I have been used both official Arduinos (Duemianove, and Mega) and AdaFruit's Arduino clone (USB Boarduino and DC Boarduino) as well as built my own Arduino compatible for permanent task, such as TagTool Nano. I still like to use those boards, but at the same time I want to built an Arduino compatible that emphasize and group the communication pins other than on typical Arduino.
Arduino is designed to expose almost all the micro-controller's input/output pins easily allowed to connect or communicate to other circuits. There are 14 digital I/O pins, six of them are optional or selectable PWM (Pulse Width Modulation) functions and six analog inputs.
On the official Arduino (Extreme, NG, Diecimila, Duemilanove, and the latest Arduino Uno) there are four header strips located on the top of the board. One 6-pin female receptacle is for power supply, both 5V and 3.3V, ground lines, Vin and Reset. The second 6-pin female receptacle is for six Analog pins. These two 6-pin female header rails are located 0.1” apart. Other two 8-pin rails located on the other side of the board, and sat 0.15” apart. These two 8-pin female header rails are used for all 14 digital I/O pins (D0 to D13.)
ATMega328 has three type of selectable functions communication protocols (I2C, SPI, and Serial Communication), I want to separate and group these communication protocols on the same header strips. I needed to use at least nine pins, two for I2C, two for Uart Serial Comm., three for SPI , two for 5V and ground. I want to maintain the 3.3V to power the devices that require 3.3V, and an extra ground, and add the reset pin into this group too. That makes the total of 12 pins.
So I decided I to use two 14-pin connector strips on each side of the RevIO board rather than separate the connectors to two 6-pin connectors and two 8-pin connectors. It makes sense, and it is the same amount of pins on each side of Atmega328!
I want to built this Arduino compatible on a typical commercial available PC Board, without modification like trim or cut, and the size of the board should be about the same size of official Arduino board. And I want to have the board encase in the proper project case, so I could carry with me anywhere or use it in-field without fear that the board is exposed, or I would break or do harm to the exposed board while working outdoor. And I was also thinking of a way to accommodate the wireless communication, such as affordable Xbee or Bluetooth, on the board so I could easily use “The RevIO” to communicate with another devices “wirelessly.”
The most obvious physical properties of The RevIO:
Two 14-pin female receptacle are used instead of four female receptacle of 6 and 8-pin females receptacle.
Group the Communication ports (I2C, SPI, and Serial Comm. Ports) on one receptacle strip.
Allows piggy back breakout board or RevIO compatible shield to be stacked over.
Encase the board in the custom-designed project case.
Color Codes and IO pins ID are labeled on the project case.
Voltage regulators (both 5V and 3.3V) are included.
XB-Buddy, or compatible Xbee adapter kit ready.
Step 1: Schematic, and PCB images
Note: There are few components that appeared on the schematic that I added on later, which are
R4, R5 - 2.2K resistor for I2C bus, so I do not have to added the resistors in case I want to connect to I2C device in the future.
JP4 - 2x3 male pin header as a standard ICSP.
Note: 3.3V Voltage Regulator shown in the schematic is L78L33ACZ (Digikey #497-7288-ND) but shown in step 10 (VR2) used MCP1700-3323 TO-92 (DigiKey #MCP1700-3302E/TO-ND) and both have different pins configuration, see datasheet for the information.