Title: Make Your Own Arduino
Class Size: 5-6?
Cost: $20 (+$5 for FTDI adapter, or bring your own, or use ours as long as it doesn't leave the building)
Pre-requisites: none, though having a laptop to try programming the board would be helpful.
Minimum Age: 12 and up (under 18 must have parent present)
This is a workshop to build your own Arduino-compatible prototyping board, the EMSL Diavolino. The Diavolino is a low-cost DIY clone of the Arduino Duemilanove board intended for teaching electronics and soldering. The kit includes a 3xAA battery pack for power.
The workshop will cover the basics of soldering, assembly of the board, testing it for basic functionality, and writing & uploading a simple sketch (program) or two onto the board.
Bringing your own laptop is not required but might be helpful, especially if you wish to go further in your Arduino exploration. Installing the Arduino software from https://www.arduino.cc/en/Main/Software onto your computer ahead of time will be very helpful if you are bringing your own computer. If you're running Windows, installing the FT232R drivers from http://www.ftdichip.com/Drivers/VCP.htm.
USB-Serial note: We will have a number of FTDI USB-serial adapters available for use to program your Diavolino at the space. Purchasing one is not required for the workshop, but if you want to do more Arduino programming on your own, you will probably want to get one. We may have a limited number available for sale at the workshop ($5-$8, depending on the exact model), or you can pick one up at Micro Center for $8: http://www.microcenter.com/product/486570/FTDI_Adapter_USB_Controller
No previous electronics/soldering/programming experience needed.
Class syllabus/Outline:
- Full instructions at http://s3.amazonaws.com/evilmadscience/KitInstrux/diavolino_instrux.pdf
- Basics of soldering in case anyone is a new solderer.
- Resistors
- Resistors resist the flow of current.
- 1K (bigger, brown-black-red) - this one keeps the LED from burning out and/or being blindingly bright
- 10k (smaller, brown-black-orange)
- IC socket
- Orientation! (less necessary than the IC itself, but good to get in the habit of doing this correctly)
- Tack first pin in, then adjust fit as needed
- Capacitors
- Capacitors store a charge.
- 18pF (2) (have black splotch across the top) - in the XTL & Caps area just above the microcontroller.
- These along with the crystal make up the timing circuit for the microcontroller.
- .1 uF (3) - two in the top left corner, one just above the microcontroller. The one in the lower left corner can be ignored unless you want to add a 2.1mm power input and 7805 voltage regulator.
- These function as “decoupling capacitors” and smooth out any irregularities in the power
- Switch - RST
- LED - Square Hole + (long lead)
- Crystal (*outer* holes on the PCB)
- Programming header
- tack in pin and adjust if necessary
- Jumpers (somewhat optional, and notice that they are zero-ohm resistors!)
- NOTE: The Diavolino does not have any protection from multiple voltage sources. You *must* be a little careful when powering it. If using USB power, TURN THE BATTERY PACK OFF!
- USBV Jumper - if you don't want to use the battery pack, or want it to be powerable via USB, install this jumper.
- Regulator jumper- if you want to use a 5V wall power supply, you can install this jumper. If you want to use a 9V (or greater) power supply, DO NOT INSTALL THIS JUMPER.
- Headers
- Solder these carefully- proper alignment is important!
- Tack one pin of each on, then adjust as necessary
- Microcontroller
- ORIENTATION CRITICAL
- Battery Pack (optional)
- Use the holes near the solder points for strain relief on the cables
- Pack can be foam-taped to the underside of the board, if you want
- Power on test
- Apply power (via batteries or USB)
- The LED should begin blinking at a 1 second on, 1 second off rate.
- More advanced tests/programming
- Change the blink rate
- Load the blink sketch in the Arduino IDE
- Change the lines that say delay(1000) to a smaller number & save
- Set the board to “Arduino Duemilanove (w/ATMega328)
- Set the port as necessary
- Program the board - the builtin LED should be blinking faster
- Fade test
- Put an LED between pin 11 (or another PWM pin) and GND (it's low current, so no resistor needed) long lead to 11, short to GND
- Load the “Fade” sketch in the IDE
- change the value of the 'led' variable to 11
- Save the sketch & program the board - the LED should fade in & out of brightness
- More tests?
- In our inaugural class, there was still a fair amount of time left.
Upgrades/Hacks:
- Voltage Regulator - if you install a 2.1mm power jack, a 78L05 voltage regulator, and a 0.1 uF and 10 uF capacitor, you can power the board from a 9V tip-positive wall power supply.
- ISP headers - If for some reason you somehow destroy the bootloader on your Arduino (it's possible, ask me how!), you can install this header, and using an AVRISP or other ATMega programmer, restore the bootloader onto the chip. For now, they can be omitted