Alt Lab 2. DIY Arduino - FAR-Lab/Developing-and-Designing-Interactive-Devices GitHub Wiki
This is an experimental lab where you will make your own Arduino. It has never been tried before! Please help to build out the activity.
Pre-Lab
Make sure you do the pre-lab in advance of this activity, and start your writeup by documenting these plans.
In The Report
For the report, use a copy of this page of the README.md in the directory for this lab in your own repository. You can delete everything but the headers and the sections between the stars. Write the answers to the questions under the starred sentences. Include code that you wrote.
Deliverables are due next Tuesday. Post a link to the wiki page on your main class hub page.
Overview
For this assignment, you are going to
B) Order parts for your Arduino+
E) Send your board off to be made
Part A. Design your Arduino+
Think of a small (emphasis on small) improvement that can be made to the basic design of an Arduino. For example, you could make an Arduino with a real time clock. Or you could make an Arduino that was laid out in a different shaped board. Please keep your design to be an Arduino plus one thing.
The questions below should help scaffold important considerations when you are making your design. The plan is for this week's lab to be about designing, laying out and sending out the board; if you need to order parts to prototype and test your design before sending out the board, please outline the expected plan.
Use PCBShopper to look at the trade offs between different quick turn PCB fab shops in time, cost, number of boards, design constraints, etc. Depending on your design needs and risk tolerance, different companies might suit your needs better.
Please document the design of your Arduino+:
a) What is the + improvement of your Arduino+
b) What Arduino form-factor/design are you basing your design off of?
c) What features/parts need to be incorporated for your Arduino+? Include your research!
d) What is the timeline for the overall development of your Arduino?
e) Which fabrication company are you using, what do you plan to order, and what is the design rationale for the selection?
Part B. Order parts for your Arduino+
Develop a bill of materials for your Arduino +.
This is a spreadsheet/table to help you keep tabs on what parts you need to order to populate your board. Here is an example of a BOM for an Arduino Uno, from Solderpad.com.
Bill of Materials Use the table below (pre-populated with parts from the Adafruit Metro Mini), or just include a link to a spreadsheet or pdf.
Part C. Prototype your Arduino+
As much as is possible, prototype the design of your Arduino +. This step may require time. For example, if you have to order breadboard able parts that you don't have on hand, you might have to order those and wait for them to arrive. On the other hand, for other aspects of your design, like layout, you might be able to use sketches to figure out how everything will fit together, or if it will be large enough or small enough for the application you have in mind.
Sometimes you're just testing out design constraints. For example, if you are making an Arduino + speaker to be a musical dog collar for your pet, you can see how heavy a collar your dog will tolerate by making a dummy board and case.
Describe key design questions (how big are the parts? what pins need to be connected?) and how you used/will use prototyping to answer them.
Part D. Layout your Arduino+
Use EAGLE, KiCAD, Fritzing or the ECAD program of your choice to layout your Arduino +. The source files for the existing Arduino designs is available from Arduino.cc. For example, here is the page with the open source designs for the Arduino UNO R3.
Document what you files, with enough specificity that anyone else could have the same thing made.
Part E. Send your board off to be made
When you have laid out your board, send it off to be fabricated. You might need to order components, tools or other apparatus (like programmers or FTDI interfaces) to complete the design at this time too.
Document what you sent, and to where, with enough specificity that anyone else could have the same thing made.
In the report, please tell us any pain points you faced in this lab, and how we could make this process easier for future students.
Example Project
In this repo you will find the original files from Adafruit for the Metro Mini you all have in your kit and a file I have edited. You can compare the changes to the schematic and the board file to see which changes were made.
I've decided I want to be able to control my Metro Mini with a standard television remote control and have that be a part of the board itself. This requires adding an IR Receiver. For the first version I will use the same through hole product linked. In a future version I may want to use a surface mount component such as TSOP752.
Getting from the original Metro Mini to the Final Design
- How are components wired?
Looking at the Data sheet I can see I need to connect pins1 = OUT, 2 = GND, 3 = VS
With an Arduino that might look something like - Open the metro mini schematic file in Eagle. The component we will need to add to our schematic is a 3 pin connector. You can find that in the Sparkfun Connectors Library. The add part button will let you put your part on the schematic. In our case the CONN_03 part in the Sparkfun Connectors library.
- Using the net tool we draw a trace from pin 2 to PD2 on our ATMEGA 328P. We add a ground connector by copying and pasting. We draw an unconnected net and name it VCCIO.
- Hit the BRD button in the top left to see your board file. We need to make routes for all the unconnected airwires. See the final design do see which parts and traces were moved.
- the board was made longer by moving the outline in layer 20
- The ground planes on the top and bottom were also moved the meet the extended length
- Traces were shifted to the right and the reset button was moved
- Routes were added for the new component and a few via's to easily route wires.
You can see the final design and compare the differences.
- Before getting anything manufactured hit the ULP button, generate BOM. Find a link to every component you will need for your board. Digikey is a good resource for this.