The Physical Computing website is packed with everything you'll need to know about electronics and programming for this class. Specifically, the following pages should be reviewed:
We'll be sticking with Arduino-compatible chipsets in this class so we don't have to leave the Arduino IDE. However, when making your own boards, it helps to have a grasp of what's happenning at lower levels.
Sparkfun's explaination of what an Integrated Circuit (IC) is.
Arduino's explaination of what happens when you hit Upload.
Here's an overview from Adafruit on using the Board Manager to install third-party boards. This tutorial tells you to download Adafruit's boards, but can be applied to all other boards.
Here is a list of all third-party boards supported by Arduino. Simple use the URL's from this page (they end in a .json) and paste them into the Preferences input, as explained in the tutorial above.
Install ATtiny85 into your Arduino IDE, using the Board Manager.
Turn your Uno into an In-System-Programmer (ISP) that can flash other AVR microcontrollers.
Select Arduino Uno in the IDE
upload the example sketch "File/Examples/ArduinoISP".
Go to the menu Tools->Programmer: and select Arduino as ISP (do NOT select "ArduinoISP", that is totally different).
Select "ATtiny25/45/85" from Tools->Board
Check that the settings are correct:
Wire your ATtiny85's SPI and RESET pins to the Arduino Uno's SPI and D10 pins:
Flash the bootloader! This will set the ATtiny85 to the clock speed you selected. Go to Tools->Burn Bootloader (make sure ATtiny85 is the target board, and you have "Arduino as ISP" as your programmer). If you get an ERROR, either:
Make something :) Here is a link to ATtiny85 pin description (Arduino pins are labelled blue in the picture), and also other hardware descriptions for connecting to different sensors and outputs.
Here's a thorough list of Eagle Commands from MIT's course on Eagle.
Here is a very helpful search tool created by Dangerous Prototypes. You enter a part number you need, and it searches GitHub for any Eagle files that contain that part, so you can simply copy/paste into your design.
Sparkfun tutorial on Eagle's schematic view.
A simple list of the Eagle commands, for quick reference.
Sparkfun tutorial on Eagle's board view, stop when you get to "Routing the Board".
A simple list of the Eagle commands, for quick reference.
Start at "Routing the Board" in the Sparkfun tutorial on Eagle's board view, stop when you get to "Generating Gerbers".
Drag and drop your Eagle .brd file into Otherplan, and your design will appear in 3d model and as a new entry on the right side. Add all the bits you will be using for this board (aka 1/32", 1/16")
With the correct bits selected, carefully look over your design and check to see if any traces are too close, or any holes are too small they won't be drilled. (link to Bantam Tool's Design Considerations)
To fix any problems, keep Otherplan open, and also open the Eagle file to edit. Adjust your traces, or drop new holes, and press SAVE in Eagle. You can then press the refresh key on your file in Otherplan, and the changes will appear.
Once your file is ready to be milled, you can start using the machine.
Power the Othermill on, and connect to your laptop over the USB cable. Otherplan should now say that you are connected to a mill, and can control it.
The Othermill is designed to hold plates 5"x4". If your board is larger than this, you can cut it to size in the shop.
Apply double-sided tape to the bottom of your board, and press if firmly down onto the Othermill's bed. Press firmly and for about 30 seconds, making sure that the tape fully stuck and flat to the aluminum bed.
The top-right of Otherplan will show what bit it thinks is currently connected. This might not be a bit your using, or could just be completely wrong, the machine's not that smart.
Select Change Tool, and follow the instructions. You should add the smallest bit your job is using (aka 1/32"), and follow the instructions for locating. The bits must be located every time after they're inserted.
Simply though, with the PCB probe touching your copper plate, go to Menu_Bar->BitBreaker->Probe_Material_Thickess.
If your bit doesn't cut through the copper while cutting, it means some spots on your plate are thinner than others. When this happens, cancel your job, and got up to the Material box in the software and open the Size section. Lower the thickness by 0.05-0.1mm, so if mine was 1.52mm before, I'll change it to 1.50 or even 1.47. Press ENTER so the value is saved, then try milling again.
Once correct bit is setup, and your material is ok, you can press "Start Cutting!". While the job is running, do not listen to headphones, and do not leave the machine alone.
If your job is using multiple bits, the machine will automatically stop and ask you to change bits. Follow the instructions just like before, and it will continue with the job.
Once the job is finished, use a vacuum to clean both your board and the entire insides of the Othermill (including those hard-to-reach places in the top).
Scrub your board with a scour pad to remove any roughness and copper hairs, and test all connections with a multimeter
Bantam Tool's has the feature of using an 30 degreen engraving bit to millout the a circuits traces. This is an amazing new feature that allows us to mill much much smaller traces and component pads.
Here's a link to their tutorial on using the new feature.
[WARNING] The below video is old, and we now can mill double sided boards on the same plate. However, the same rules apply when cleaning it.
[WARNING] The below videos are old, and we now can mill double sided boards on the same plate. However, the same rules apply when soldering.
Sparkfun's tutorials are focused on how to solder the parts down, whether using an iron, hot air gun, skillet, or toaster oven.
A Bootloader is a small piece of code that we usually need to put on our microcontrollers before we can program them with Arduino. Any board that works with the Arduino IDE has an "Arduino" bootloader inside it, giving it the ability to load code from the Arduino IDE.
Here's an explanation of what the Arduino Bootloader is from Sparkfun.
Whenever code is transfered from a computer to a microcontroller, something must be in the middle acting as a converter. This is a usb-to-serial converter, or a usb-to-spi converter, or something similar. These middle devices are call In-System Programmers (ISP).
Here's a tutorial on using Arduino as an ISP (In System Programmer)