Table of Contents

16PinHbridges
3.2 Inch TFT Touch Screen
3D Printer
5V Voltage Regulator
7Segment12Pin
7Segment16Pin
acousticGps
Arduino
Arduino Communication
Arduino Tricks
ArduinoActiveX
ArduinoDIY
Atmega
Atmega1284P
Atmega644P
AtmegaDuo
Attiny
AVR_Dude
bootloader
Bootloader absent
CodeBender
COG128X64
Contact Us
DEI1016
DIY Ultrasonic range finder
DIY Wireless Joystick
diyAcousticTransducer
EEPROM 24LC156
ENC28J60
ENC28J60Iframe
ENC28J60Internet
ENC28J60_IO
Ethernet Shield Web Client
EtherTenRF
FakeFlame
Fiverr
Fritzing
Getting Started
gpsModule
HBridgeDIY
HBridgeDIYProtected
HCSR04
Heng Long 1/16 Tank
Heng Long 1/30 Sherman
I2C Component
Infra-Red Receiver/Transmitter
Internet Home Automation
IpodBreakout
IR Battle Tank Project
JeeNode
JeeNode Network
Keypad 4x4 matrix
Known IR pulses
LCD 12 X 1 (KTMS1201)
LCD Character Display 16 x 2
LCD Character Display 4x20 shield
LCD Shield
LED Cube
MCP23017
MegaBotz
MegaTech Mega Tank
Midi-In
Midi-Output
ModifyNewBrightQuad
ModifyNewRayTank
ModifyRCToy
Moto mama shield
NoIP
Nokia5110Keypad
Nokia5110RF
nRF24L01
nrf24l01 Dynamic Network Protocol
nRF24L01 Library
OpenWRT
PCB creation
Power Saving Mode
PS2Controller
PS2Keyboard
PS2Mouse
PS2WirelessKeyboard
PS3Controller interface to PC
PSC04 Shield
PSC05 Shield
PSXAnalog
PSXAnalogTx
PSXController
Raspberry Pi
Raspberry Pi Next Step
Relay
RS232
Rumble Robot
SD Card Shield
Serial Buffer
Serial Camera
Servos
Shift Registers
SPI
SpyGearTank
SR04
StarWarsTank
StepperMotor
StepperMotorShield
Switches
Switching Voltage Regulator
TA8050A H-Bridge
thermistor
TIP120 NPN Transistor
TIP125 PNP Transistor
TLC5940 Shield
Toy State Industrial Tank
TPLink
TV_Timeout
UltimateGPS
Unlimited IO
USB Shield and WII Remote
Usb to Serial programmer
usbMissile
UsbStick
VBDuino
VideoExperimenter
Visual C .Net
Voxel Shield
Wifi HBridge
Wiimote WhiteBoard
Wiimote_Blobs
Writing to TV Display
X10
X10TXOnly

16PinHbridges

sn754410 data sheet and L293data sheet are popular 16 pin h-bridges
Orderable kit: Mouser Project


3.2 Inch TFT Touch Screen

Iteadstudio has a 3.2 inch wide touch screen with sd flash support. It is recommended that a mega is used so that you can have the flash and touch functionality at the same time. A 40 pin mega shield is used to connect the arduino mega to the touchscreen.

I had to add a filter to the touch logic because I was getting spurious X/Y coordinates. I suspect the polling of the IRQ is not correct. See source .zip file below. I did not verify the behavior of the flash yet.
online tutorial

Arduino ide sketch with libraries: ITDBTouch_pde.zip

ImagePart IdDescriptionWherePriceDataSheet
Touch LCD display Mega ShieldUsed to connect arduino mega to 3.2 inch touch screen, also has real-time clockiteadstudio part$9 
Touch LCD display3.2 inch wide screen, also has sd flash breakoutiteadstudio part$30 
Arduino Mega16 mhz 54 digital i/o pins, 16 analog pinsiteadstudio part$40 


3D Printer

Would like to use my Stepper Motor shield
Log


5V Voltage Regulator

The 7805 can be used to decrease the voltage to a more usable level. This is a linear voltage regulator, so any voltage over 5 supplied to this unit will be converted into heat. A switching regulator will not have this problem.

ImagePart IdDescriptionWherePriceDataSheet
LM78055V voltage regulatormouser part$0.60datasheet

7Segment12Pin


These 7 Segment displays contain 4 digits and is suitable for a counter, may not have a colon for clock.
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   7Segment12Pin.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
7 segment LED Display 124 digits, 12 pins, does not have colon for clockebay supplier$1.99datasheet
220 ohm resistor1/4 watt through holemouser part$0.03 (in packs of 100)datasheet
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

7Segment16Pin


These 7 Segment displays contain 4 digits and have a colon for time readouts.
online tutorial
Build Instructions:

Arduino ide sketch with libraries: sevenSegment16pin.ino

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   7Segment16Pin.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
220 ohm resistor1/4 watt through holemouser part$0.03 (in packs of 100)datasheet
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
7 segment LED Display 164 digits, 16 pins, has colon for clockhttp://www.sparkfun.com$1.95datasheet

acousticGps

Accuracy of 0.1 per inch.
Requires 3 "beacons" consisting of RF receivers and acoustic transmitters (amplified).
"Gps" units consist of rf transmitters and acoustic receivers

Also see HCSR04 project.
online tutorial

ImagePart IdDescriptionWherePriceDataSheet
Ultrasonic TransducerUsed for distance measuringhttp://stores.ebay.com/one2freeland2011$5.40 
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet


Arduino


The arduino is an atmega328 surrounded by power supply and usb interface components. It also breaks out all digital/analog input/output to female headers.
The amazing thing about the arduino is the countless open source libraries that people have developed to interface with many-many hardware modules (think gps for example). Note: All these libraries are also compatible with any atmega168/atmega328 projects you build.
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   protoShield.zip

To modify the pcb, use these Eagle definitions:
ImageDescription
The Arduino
ImagePart IdDescriptionWherePriceDataSheet
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 

Arduino Communication

To communicate between arduinos, use can connect any 2 spare digital ports, and use the NewSoftSerial library.

You define a structure and pass that structure over the wires. Here is an example receiver sketch:
#include <NewSoftSerial.h>
#include <SoftEasyTransfer.h>

//create Serial Port
NewSoftSerial mySerial(2,3);
//create object
SoftEasyTransfer ET; 

struct RECEIVE_DATA_STRUCTURE{
  //put your variable definitions here for the data you want to receive
  //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
  byte temp;
};

//give a name to the group of data
RECEIVE_DATA_STRUCTURE mydata;

void setup(){
  mySerial.begin(9600);
  Serial.begin(9600);
  Serial.println ( "Receiver waiting for data on port 2" );
  //start the library, pass in the data details and the name of the serial port.
  ET.begin(details(mydata), &mySerial);  
}

void loop(){
  //check and see if a data packet has come in. 
  if(ET.receiveData()){
    Serial.println ( (int) mydata.temp);
  }
  //you should make this delay shorter then your transmit delay or else messages could be lost
  delay(10);
}

online tutorial
Arduino ide sketch with libraries: softSerial.zip


Arduino Tricks




ArduinoActiveX


This ComPort.zip file contains a .ocx component that can be used to write serial commands to the Arduino and read serial responses. The .ocx, ActiveX component can be placed in a .html file so that the user can command the Arduino through Internet Explorer. To do this, follow these steps:
Note: For Advanced users, the vp activex project is also included


ArduinoDIY


To program this, use a Usb to Serial Programmer modified with the reset line connected to DTR via a 0.1uF cap.
online video

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   ShieldWeeny.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
16mhz clockWith center grounding pinMouser Part0.44 
Atmega socket28pinMouser Part$.32 
220uF capUsed to smooth out power supplymouser part$0.09 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
ATMEGA328Microcontroller speed:16 megahertz RAM:32Kmouser part$2.73datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

Atmega

Atmega328s can be purchased at http://www.mouser.com for $2.73. Parts from mouser do not come flashed with the Arduino bootloader. See the bootloader section for instructions how to place the bootloader on blank parts. With an additional of a clock, resistor, and female header, the atmega part can be programmed.
Alternately you can use your arduino to flash the atmega with your sketch (once the bootloader is installed). Atmega328s AND Atmega168s are interchangeable. Atmega328s have 32k Ram and Atmega168s have 16K Ram. Most programs fit in about 8 k of ram.

ImageDescription
Basic Uduino type schematic
Basic Uduino type setup
ImagePart IdDescriptionWherePriceDataSheet
Atmega socket28pinMouser Part$.32 
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 
.1 uF capacitorCould be connected to reset line and usb to serial dtr linemouser part$0.05datasheet
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
ATMEGA328Microcontroller speed:16 megahertz RAM:32Kmouser part$2.73datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

Atmega1284P


Schematic for burning:

There is a way to program this directly described here by maniacbug
This is a 40pin microprocessor in the atmega family.
Using this processor should yield enough i/o pins for any project.
I'd like to make a pcb for this some day.
Mouser
Futurlec
datasheet

ImagePart IdDescriptionWherePriceDataSheet
Atmega1284p40 pin microprocessorMouser Part5.82datasheet

Atmega644P



online tutorial


AtmegaDuo


Two atmegas with a SoftwareSerial interface between them
6 additional PWM outputs at the top right, and 8 additional digital i/o at the top left.
online video
Build Instructions:

Arduino ide sketch with libraries: HengLongMaster.zip


Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   atmegaDuo.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
Atmega socket28pinMouser Part$.32 
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

Attiny

Micro I2C library
Better instructions

Unzip this to your arduino sketch folder/hardware directory attiny45_85.zip

$1 part from mouser
online tutorial


AVR_Dude

Spark fun discussion with tiny usb programmer
Lady Ada discussion

Tutorial installed when arduino installed.

Command to upload 168 is:
avrdude -c usbtiny -B 1 -patmega168 -U flash:w:ATmegaBOOT_168_ng.hex
Bootloader .hex files come from Arduino directory:
C:Arduino/hardware/arduino/bootloaders
For example 168 bootloader is:
C:ArduinohardwarearduinoootloadersatmegaATmegaBOOT_168_ng.hex
atmega8 bootloader is: ATmegaBOOT.hex
328 bootloader is: ATmegaBOOT_168_atmega328.hex



bootloader


For a few dollars in parts you can make your own atmega bootloader. This will allow you to purchase atmega168s and atmega328s from suppliers that don't send them flashed (such as www.mouser.com). The savings can be significant. Atmega328s cost $2.73 in packs of 10 from www.mouser.com. From sparkfun they are currently $4.30 each. The only difference is that the sparkfun item is loaded with the bootloader, which is necessary to use the Arduino IDE.

First select the type of board you would like to flash using the tools, board selection. Then burn the bootloader:

Below is a parts list that goes with the pcb that allows you to make your own. Additionally you will need 2: 1K resistors and a green led and a red led.
I tested this on an Arduino UNO and it worked ok provided that you use the arduino 22 IDE(11/9/2011).

NOTE: This sketch does not seem to work on the Arduino Uno, I have gone back to my tinyIsp from sparkfun
online tutorial
Build Instructions:

Arduino ide sketch with libraries: bootloader.zip


Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   bootloaderPCB.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
ZIF ConnectorZero Insertion Force Connector for atmega168 and atmega328ebay supplier$2.80 
Male headersbreak away straightebay supplier$0.03 (in packs of 150) 
ATMEGA328Microcontroller speed:16 megahertz RAM:32Kmouser part$2.73datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

Bootloader absent

you can burn programs without bootloader: Hacking


CodeBender

Codebender allows you to upload an arduino using a browser rather than the Arduino IDE. http://codebender.cc
You can upload and debug your sketches from your browser. Not sure if any extra debugging is provided besides Serial output.


COG128X64

Pinout:

http://www.iteadstudio.com has these for about $10.00

Tutorial below points to a library that looks good.
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   COGShield.zip

To modify the pcb, use these Eagle definitions:


Contact Us

Comments, suggestions?
paulware@hotmail.com


DEI1016

A429 Chip. 16 rx channels, 16 tx channels.
.zip file is not ready for iteadstudio yet.
Possible step-up converter: maxim-ic triple converter
touchscreen uses pins:
ITDB02 lcd(37,36,35,34,33,32,31,30,22,23,24,25,26,27,28,29,38,39,40,41);

online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   DEI1016.zip

To modify the pcb, use these Eagle definitions:
ImageDescription
DEI1016 Pinout
DEI1016 Block
ImagePart IdDescriptionWherePriceDataSheet
deo1016 A429 Transmitter16 receive and transmit channelsdeiaz part$10datasheet

DIY Ultrasonic range finder


Requires further investigation
online tutorial


DIY Wireless Joystick

You can get a TV game that plays PACMAN for about $7.00 on ebay. Search under "NamcoPacman". These units have a joystick, a fire button, a reset button an off switch, a power led and a 4 AA battery holder. They are also big enough to hold a pcb with an atmega.

Below is sample code that I wrote to interface with the nrf24l01 and drive multiple tanks. By double clicking the fire button different units can be selected.

Arduino ide sketch with libraries: namcoPacman.zip

ImagePart IdDescriptionWherePriceDataSheet
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet


diyAcousticTransducer

40 kHz module should give greater distance
online tutorial


EEPROM 24LC156

This is an I2C chip which means it needs to connect to analog 4 and analog 5 of the atmega chip. These are the last 2 analog pins. This device uses address 0x50. This address is changed by pulling up pins A0, A1, A2. 8 addresses are supported.
Also see this online sketch

note: a 5ms delay (instead of 10ms) is sufficient after the write is executed. 0 delay does not work.
online tutorial

Arduino ide sketch with libraries: EEPROM.zip

ImagePart IdDescriptionWherePriceDataSheet
EEPROM 24LC25632K x 8 bitsmouser part$1.13datasheet


ENC28J60


It seems reasonable that this $7.30 ethernet module will be the basis for many home web-servers connected to an arduino gathering sensor information via an RF network.
The pcb below was created to add an ethernet module to an atmega making a "etherduino". It has not yet been verified (10/27/11) but the .sch and .brd are available below for review.
A similiar ethernet shield perhaps with an atmega to provide information via I2c may be created in the future

Based on the webserver.pde, the pin connections are:
ENC28J60 PinArduino Pin
CLK OUTNot Connected
(ENC WOL)Not Connected
SI (Master Out Slave In)D11
CSD10
3.3V VCC3.3V Linear Voltage Regulator
INT (ENC)D2
SO (Master In Slave Out)D12
SCKD13
RESETReset
GNDGND

The tutorial below walks you through connecting the ethernet module to a laptop and accessing it directly via the LAN connection. For Win7 you will need to go to the Control Panel -> Network and Sharing Center then select Local Area Network and Properties.
Note: You may need to turn off your wireless adapter if connecting to pc Ethercard library for this device is located on github
online tutorial
Arduino ide sketch with libraries: webserver.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   etherWeeny.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
ENC28J60Ethernet moduleebay supplier$7.30 
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 
.1 uF capacitorCould be connected to reset line and usb to serial dtr linemouser part$0.05datasheet
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

ENC28J60Iframe

An Iframe in an object which can be placed in an internet web-page. The Iframe can be set up to poll your home ENC28J60 page at regular intervals.
Note: url=the ip address of your enc28J60
<iframe id="frameId" src="http://url/"></iframe>
To force refresh every 2 seconds, create a script function:
<Script>
function refreshFrame()
{
  parent.frameId.location.href="http://url/";
  setTimeout ("refreshFrame()",2000);
}
refreshFrame(); // Start the refresh
</Script>
Below is an iframe. Click on "Test Local" or "Test Internet", this will start the automatic refreshing of the frame every 2 seconds.



Arduino ide sketch with libraries: webserver.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   etherWeeny.zip

To modify the pcb, use these Eagle definitions:

ENC28J60Internet


To place the ENC28J60 onto the internet you need to connect it to your router:
online tutorial
Arduino ide sketch with libraries: webserver.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   etherWeeny.zip

To modify the pcb, use these Eagle definitions:

ENC28J60_IO

Commands are sent to your internet connected ENC28J60 by way of a url if the form:
  http://address.of.the.enc28j60/cmd=X
Where X = the value of the command.
baseurl must also be modified
 static char baseurl[]="http://65.103.50.60/";

to point to the current ip address of the enc28j60
If you have a dynamic ip address, your sketch will need to be updated whenever your ip address changes. That is, assuming that you are testing commands outside of your local network. If you are testing within your network baseurl must be set to the local ip address of the ENC28J60 component. For example: http://192.168.0.17. This is an address that must be coordinated with your router
To handle button pushes, an HTML form is created which has the METHOD=get and the action set equal to the ipaddress of the enc28j60. Within that form is a hidden input field named cmd which is either set to 1 or 2 allowing you to toggle the value of cmd which is passed to the page.
        if(on_off) { // cmd is set to 1 
          // Show off button
        } else { // cmd is set to 2 (off) 
          // Show on button
        } 
When the off or on button is pressed, the form action is activated and the enc28j60 is polled with a new command.
To display data, the function: print_webpage is modified to print the values that you are interested in. For example a hitcounter could be implemented but the values must be saved to eeprom and would only show hits from last upload of source code. Similiarly elapsed time since power-up, could be shown but this value should also be saved to eeprom.
Arduino ide sketch with libraries: webserver.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   etherWeeny.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
ENC28J60Ethernet moduleebay supplier$7.30 

Ethernet Shield Web Client


online tutorial

ImagePart IdDescriptionWherePriceDataSheet
Ethernet ShieldCan connect to internet as client or serversparkfun part$46 

EtherTenRF


The etherten (uno like) device effectively combines an arduino Uno with ethernet capability. In this project I added RF capability by using my own protoshield (Called ShieldWeeny) which had breakouts for the nrf24L01. I adapted the softserial library so that I could pass serial information from my RF shield (containing an atmega168) to the etherten using a single pin, rather than the standard 2 pin receive AND transmit interface. This will be used for a home automation project to receive commands from an internet page and display sensor data (such as temperature) on the internet.

I used a modified usb to serial adapter to program the SheildWeeny.

Source code and schematics provided below
online tutorial
Arduino ide sketch with libraries: EtherTenRF.zip


Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   ShieldWeeny.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
Atmega socket28pinMouser Part$.32 
470uF capUsed to smooth out power supplymouser part$0.075 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

FakeFlame

Create a fake flame effect for your IR BattleField. I used a TIP120 NPN transistor on a separate 3 x AA battery pack. Check youtube video below.
online video


Fiverr

A cool site that allows people to provide services for $5.00 and more www.fiverr.com

I provide Arduino services on fiverr


Fritzing


Fritzing is a web-site that allows you to make a cool arduino diagram of a circuit. Fritzing can be downloaded from here


Getting Started

  1. Get an arduino from sparkfun (for example)
  2. Download/install the ide: link
  3. Connect arduino to computer
  4. Double click on a .pde file (IDE should pop up)
  5. Select Tool/Board and Tools/Serial Port
  6. Press Upload Button (Right arrow on IDE
You have now started :)
online tutorial



gpsModule

Arduino.cc has a library to decode the serial data...See online tutorial link below.
WireDescription
Red5 V
BlackGround
Yellow4800 bps data
WhiteNot Used


online tutorial

ImagePart IdDescriptionWherePriceDataSheet
GPS ModuleRed 5V, Black Ground, Yellow 4800 bps serial data, search ebay for gps moduleebay supplier$15.00 


HBridgeDIY

Many rc toys use a 6 transistor h-bridge similiar to

You can modify the eagle schematic or order copies of the pcb below from iteadstudio.Warning:This pcb has not been verified yet (8/13/2011)

Note: You may also need to protect your system from motor flyback.
online tutorial
Orderable kit: Mouser Project

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   hBridge2.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
NPN Transistor600 mA Collector currentmouser part$0.05datasheet
PNP Transistor800 mA Collector currentmouser part$0.06datasheet
Diode1N4448mouser part$0.02 (in groups of 100)datasheet
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 

HBridgeDIYProtected

To protect the HBridge from motor flyback 4 diodes and cap were added to each H-Bridge:

Warning: This pcb has not yet been verified
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   hBridgeProtected.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
PNP Transistor800 mA Collector currentmouser part$0.06datasheet
NPN Transistor600 mA Collector currentmouser part$0.05datasheet

HCSR04

Ultrasonic Range Sensor.

Also see acousticGps project
online tutorial
Arduino ide sketch with libraries: ultrasonicDemo.zip

ImagePart IdDescriptionWherePriceDataSheet
Ultrasonic TransducerUsed for distance measuringhttp://stores.ebay.com/one2freeland2011$5.40 


Heng Long 1/16 Tank


This is from a scale 1/16 Heng Long Tiger Tank.
Heng Long 1/24 tanks are similiar.
An arduino 5v digital output can be used to drive the motors without adding any additional resistors. The normal Heng Long battery pack is 7.2 volts.


Heng Long 1/30 Sherman


This is a 1/30 scale model that has turret left/right up/down and left/right movement. It does not fire bbs. It has good quality/realistic movement. It may be difficult to solder to since the joints are so small.

Power supply = 4.8V (4 x AAA) in a rechargeable pack.
online video

ImageDescription
1/30 Scale M4 Sherman by Heng Long


I2C Component


Each I2C component has a female rj9 component which connects it to another slave or the master. To add more components splice in 4 more wires to the next component.

Sometimes the library used to communicated over I2c (wire), is not compatible with the library created to read the component (like ps2 mouse library). When this occurs, one solution is to use 2 atmega168s. The first one reads the component and the second atmega168 passes this information over I2C network (using wire). The 2 atmegas can communicate by connecting the serial tx (D2) of the 1st atmega to the serial rx (D1) of the second atmega.

Currently I am working on a pcb that will make the assembly of this component easier. The finished master/slave components should snap together.

Also note: Wire library have sender and receiver examples
online tutorial



ImagePart IdDescriptionWherePriceDataSheet
RJ9 Connectorfemale 4 wire connectorsparkfun part$0.10datasheet


Infra-Red Receiver/Transmitter

Infra-Red Receivers and Transmitters
Orderable kit: Mouser Project



ImagePart IdDescriptionWherePriceDataSheet
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
IR DetectorIR detector with preampmouser part$.60datasheet
IR Transmitter17 degrees half intensitymouser part$.36datasheet

Internet Home Automation


Using an Ethernet Shield or enc28j60, an arduino can post sensor status and respond to commands over the internet. Each sensor could contain a $4 RF component which allows it to communicate with the arduino which also has the ethernet shield.

A simple dynamic network protocol has been created for the nrf24l01. This allows the network to "heal" if a node is removed.
Possible sensors include:

Possible commands include: X10 and arduino can be used together wireless or wired
See also PSC05 Shield idea

ImagePart IdDescriptionWherePriceDataSheet
5V power supplyAlternate to wallwartebay supplier$15 
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

IpodBreakout

https://tindie.com/kineteka/podbreakout/


IR Battle Tank Project

The pcb .zip file can be submitted to iteadstudio.com for $1.40 (in sets of 10). The pcb has been checked but a change was made since then so its not fully tested yet. The nRF24L01 code has been integrated to work with the IR receiver. I have hacked the IR to mimic popular tanks: Forces of Valor & Huan Qi. Currently 2 dpdt relays are used for the left/right tracks and an additional dpdt is used for on/off power. Later 3 more relays will be added for turret movement/elevation.
Orderable kit: Mouser Project
Arduino ide sketch with libraries: nRF24L01RelayIR.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Mini DPDT Relay, only 3 V requiredDouble pull double throw, these have a polaritymouser part$2.06datasheet
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
IR DetectorIR detector with preampmouser part$.60datasheet
IR Transmitter17 degrees half intensitymouser part$.36datasheet
HBridgeControl 2 dc motors forward/reverse. 5V output provided. PWM input used for speed controlebay supplier$8.50 free shipping (bid) 

JeeNode

Jeenodes can be purchased here from a US supplier called Modern Device. How to build

These can be programmed with an FTDI cable but the cable should operate at 3.3V. If you have a 5V FTDI cable, use a 1k resistor between the FTDI rx and the JeeNode rx. Similiarily, use a 1 k resistor between the FTDI tx and the JeeNode tx. A sample wireless sensor network software can be found: here

http://en.wikipedia.org/wiki/Wireless_sensor_network

jeenode libraries:

There are 2 libraries that need to be installed before the sample software will run: Ports and RF12. They are combined in one .zip file

pinout
ports to arduino ports
online tutorial


JeeNode Network

To Set up a jee node network:



Keypad 4x4 matrix

These are available on ebay for a few dollars after shipping:
This product comes with pull-up resistors so these do not need to be added

Here is link to a sketch for this product:4x4 keypad
i2cCode
online tutorial


ImagePart IdDescriptionWherePriceDataSheet
Numeric Keypad4x4 Matrix Inputebay supplier$3.59datasheet

Known IR pulses

Unimax FOV vehicles are the hi end of RC Infra-red battle tanks. They typically run for around $100.00 plus shipping, and come with an IR practice target. Detailing is very good and the motor action for the treads is very smooth.

Their distinct IR pulse can be defined by the following array which lists On/Off pulses in microseconds:



LCD 12 X 1 (KTMS1201)

This the cheapest screen that can be used to get some feedback for your project.

PinDescription
15V
2GND
3Not Clock
4Si
5C/D
6Reset
7Busy
8CS
9GND
10Not Connected
You can connect the LCD pins to whatever arduino pins are available. See the sketch for the appropriate #defines
Arduino ide sketch with libraries: KTMS1201.zip

ImagePart IdDescriptionWherePriceDataSheet
LCD Screen12 digit 7 segment displayebay supplier$3datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

LCD Character Display 16 x 2

http://www.arduino.cc has a library for lcd displays called LiquidCrystal. A standard lcd display has 16 pins that can be attached so the difficult part is the wiring:
LCD PinConnects ToDescription
1GndGround
25V5V Power
3Potentiometer (middle pin)Contrast Adjust
4Atmega D7RS
5GndRW
6Atmega D8E
11Atmega D9DB4
12Atmega D10DB5
13Atmega D11DB6
14Atmega D12DB7


example (Go about half way down the page)

Here is a link to source files: LCDDisplay.zipThis part can then be modified to accept I2C commands


LCD Character Display 4x20 shield


I created a shield for this item because I wanted to use it for debugging and as an optional component for other projects. Note: The "shield" can also be built as a standalone arduino with LCD (minus usb and 5V regulator).
abu drawing
Character definer

http://www.arduino.cc has a library for lcd displays called LiquidCrystal. A standard lcd display has 16 pins that can be attached so the difficult part is the wiring:

LCD PinConnects ToDescription
1GndGround
2VCC5V Power
3Potentiometer (middle pin)Contrast Adjust
4D7RS
5GndRW
6D8E
11D9DB4
12D10DB5
13D11DB6
14D12DB7
15VCC for backlight
16Gnd


online tutorial
Arduino ide sketch with libraries: LCDScreen.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   LCDDisplayShield.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
470uF capUsed to smooth out power supplymouser part$0.075 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
LCD Display16 X 4 Charactersebay supplier$10.00 
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
LCD Module20x4 character blue backlightEbay Supplier$8 

LCD Shield

128 x 128 pixel display
Library.zip fileOne thing to note if using their library:
printChar only writes the character if followed by a setxy. Here is a modification I made to write 1 ch:

void showCh ( int x, int y, byte ch)
{
if (x < 20)
if (ch)
printChar (ch1, byte(x*6), byte(y*8));

// Force the previous write...not sure why this is necessary
if (x < 20)
setXY(byte(x*6), byte(y*8), 5, 9);
}

online tutorial

ImagePart IdDescriptionWherePriceDataSheet
LCD ShieldKit form 128 x 128 pixelsnkcelectronics part$19.95datasheet

LED Cube

See also the Voxel Shield

online tutorial
online video
Orderable kit: Mouser Project

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $2.40 each in packs of 10)
   voxelShield.zip

To modify the pcb, use these Eagle definitions:

MCP23017

This I/O Extender has an spi and an IIC interface. The part listed here has an IIC interface. There is a good tutorial on using the part here
  // Example to light some LEDS
  Wire.beginTransmission(0x20);
  Wire.send(0x12); // address bank A
  Wire.send(0x82);  // value to send
  Wire.endTransmission();
Lights LEDS:

Controlling 3 stepper motors would be a good use for this part.

ImagePart IdDescriptionWherePriceDataSheet
MCP23017IO ExtenderMouser part1.26datasheet


MegaBotz


Megabotz can be purchased on ebay for a couple dollars plus shipping. They are probably the lowest cost robotic platform you will find.
Power supply = 6 x AA ( 3 for motor power, 3 for controller power )
Megabotz have 2 selections:
Soldering is a little tricky since the joints are small. It helps if you use small wires, like those found in 6-wire telephone cable. I buy this by the 50 feet at Lowes/Menards/Home Depot.
There is not much space for an additional pcb. I am going to try using the speaker area. I don't know if a 1k ohm resistor is necessary from atmega to the board. I will post this info when I get a version running.

ImageDescription
Megabotz IR Battle

MegaTech Mega Tank

This is a 4AA tank that is full of features. It smokes, commanders are ejected, turret moves left/right. You can get 2 of these for about $40.00 on ebay.

On the down side, the treads are rather cheap and there is little space for an additional pcb.
Here is a picture of the receiver board with the control pins broken out. You can drive them straight from arduino without a 1k ohm resistor because there is already a 1 k ohm resistor on the board.

Orderable kit: Mouser Project


Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:


Midi-In

To read a switch and use the internal pull-up resistors for the atmega:

Creating midi input shield
Awesome Arduino tutorial

online tutorial
Orderable kit: Mouser Project
Arduino ide sketch with libraries: Organ.zip

ImagePart IdDescriptionWherePriceDataSheet
Midi Female ConnectorFor Music projectssparkfun part$1.95datasheet


Midi-Output

Creating midi output


ModifyNewBrightQuad

Here is a picture of a New Bright Quality Toy, Quad ATV receiver board with control pins identified
Arduino ide sketch with libraries: JEEP.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:
ImageDescription
QUAD ATV 4AA Power Supply
Insides of Quad ATV with new pcb
New Bright Quality Toy, QUAD ATV

ModifyNewRayTank

I recently got a couple 1999 newray tanks on ebay. They came with infra-red remote controllers, but I wanted to modify them to respond to rf.

Like most RC toys, they already had an H-Bridge with flyback protection. I wanted to reuse the H-bridge and control the toy via an atmega168 listening for rf commands via a $4.00 transceiver (nrf24l01).

NOTE: You can probe the board by attaching a lead to the VCC and checking its affect. This could fry the board, so only try this on pins going from the microcontroller to a resistor. This is your best bet for a control line
Arduino ide sketch with libraries: modifyRCToy.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
Modifiable JoystickNamco Pacman TV control, you can get on ebay. It has a 4AA battery holder, on/off switch, fire button, on/off switch, power led, reset buttonebay supplier$11.00 

ModifyRCToy

The preferred method of modifying an existing RC toy is to reuse the power supply and receiver board which already contains an h-bridge. Start with a toy that has a 4AA power supply this will make it compatible with the atmega. Also the toy should have interior space available to accomodate an additional 2 inch x 2 inch pcb (one option may be to downsize the speaker). This will save you money and look better from the outside. Additionally the circuit should already be protected from motor flyback. This will save hours of frustrating rework.

To modify an RC toy:

Here is a picture of a NIKKO truck receiver board with control lines identified
Arduino ide sketch with libraries: JEEP.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:

ImageDescription
Internal Receiver board plus new pcb
NIKKO RC Truck
4.8V power supply

Moto mama shield

Moto Mama is a shield from iteadstudio that has a breakout for the 2.4 megahertz transmitter and contains an h-bridge for driving 2 DC or 1 Stepper motor. I could not get this part to function properly...I don't recommend it.
Arduino ide sketch with libraries: MotoMama.zip

ImagePart IdDescriptionWherePriceDataSheet
MotoMamaArduino Motor Driver Shielditeadstudio part$20datasheet

NoIP

No-Ip is a very cool site that will give you a free dns name so people can find your web-site.
They also have a client program that will keep people pointed to your home computer even when the cable company changes your dynamic ip address.

Orderable kit: Mouser Project
Arduino ide sketch with libraries: Organ.zip


Nokia5110Keypad


http://www.iteadstudio.com has these.
Here is another tutorial link library
The shield can be purchased from Iteadstudio
online tutorial


Nokia5110RF

Custom pcb board:

This shield combines an RF module with a Nokia 5110 module plus 3 buttons so that simple menus can be selected.
These menus are provided from another RF transmitter that can optionally be connected to a pc.

See below video to view parts to this project

RF5110Source.zip file below contains directories:


online video
Arduino ide sketch with libraries: RF5110Source.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   RF5110.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
LED CubeGood for a project box, has 4xAAA battery holderEbay Supplier$3.69 
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
Nokia Graphics Display84 x 84 pixelsiteadstudio part$7datasheet
Male headersbreak away straightebay supplier$0.03 (in packs of 150) 
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

nRF24L01


$4.00, 2.4 megahertz transceiver, range 50m. Baud Rate: 250 kbs. Input voltage range: 1.9V..3.6V
You may need a 3.3V linear Regulator with this project.
Hookup Table (for 8 pin connector)
Not Connected(IRQ)D12(MISO)
D11(MOSI)D13(SCK)
D18(CSN)D8(CS AKA CE)
3.3VGND

Awesome Library for this device located: http://maniacbug.github.com/RF24/

Need to verify: A capacitor is required on the power supply between the 3.3 supply and the nrf24l01.
Note: IRQ line does not need to be connected
online tutorial
Arduino ide sketch with libraries: nRF242l01a.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   ShieldWeeny.zip

To modify the pcb, use these Eagle definitions:

ImageDescription
nRF24L01 module pinout
ImagePart IdDescriptionWherePriceDataSheet
220uF capUsed to smooth out power supplymouser part$0.09 
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

nrf24l01 Dynamic Network Protocol

A dynamic network protocol has been created which allows the network to "heal" when a node is removed from the system.

ImagePart IdDescriptionWherePriceDataSheet
5V power supplyAlternate to wallwartebay supplier$15 
2.4 Megahertz TransceiverMore than 100 channelsiteadstudio part$4datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

nRF24L01 Library

note: There is an awesome library for this device located at: http://maniacbug.github.com/RF24/

I created a version for personal use only described below. I will be moving to the maniacbug version as soon as possible.

The master (UnitNumber == '0') will poll the slaves (UnitNumbers '1'..'9' & 'A'..'Z').
If there is no response within 1 second the master will move on to the next slave. Here are relevant declarations:

unsigned char rx_buf[32] = {0};
unsigned char tx_buf[32] = {0};

/* Initialize the device */
void init_io();

/* Go to transmit mode */
void txMode();

/* Go to receive mode */
void rxMode();

/* transmit a 32 byte buffer */ 
void tx (  unsigned char * buf );

/* Poll receiver.  
   return true if first byte == MYUNITNUMBER.
   place received data (if applicable) in buf */
bool rx ( unsigned char * buf );
ByteDescription
1Destination Unit Number
2Source Unit Number
3Command
4Data
5..32Optional Data

Build Instructions:

Arduino ide sketch with libraries: 5ByteProtocol.zip


Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01Serial.zip

To modify the pcb, use these Eagle definitions:

OpenWRT

The basis of DDWRT


PCB creation

Eagle software can be downloaded free from: https://www.cadsoft.de/download.htm
Here is an example arduino shield blank board:

Here is an example schematic:

The light version is limited to a total size of 3 inches X 4 inches and can only specify 2 levels. But this is enough for our purposes.
When Eagle creates the files, there are 7 that you care about :


One Note: Make sure you check errors before submitting, or else you may get back a pcb with only drill holes (not very useful)!
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   protoShield.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
Custom pcb creation5cm x 5cm maximum dimensions, send a .zip file, you receive a batch of 10 iteadstudio part$10 + $4 shipping 

Power Saving Mode

Could be useful if you don't need to poll a sensor quickly (like temperature for example)
online tutorial


PS2Controller

Sony Playstation controller
online tutorial


PS2Keyboard

Similiar to the PS2 Mouse, the keyboard uses the same minidin connector. However, the keyboard needs an IRQ line connected to the clock. For the atmega168 and atmega328 D2 and D3 are valid IRQ lines. The library for this sketch was copied from http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html.
online tutorial

ImagePart IdDescriptionWherePriceDataSheet
PS2 keyboard or mouse connectorminidin 6mouser part$1.04datasheet

PS2Mouse

Example from arduino.cc example


Picture of the female pinout:


Library:ps2.zip

Here is a picture of the mouse pinout:
Since the Wire I2C library is incompatible with the Ps2 library, 2 atmega 168s were needed to created the mouse I2C component. One is used to read the mouse and 1 is used to communicate over I2C.

Here is a schematic of the 1st Atmega168 used to read the PS2 mouse:
Here is the code to read the ps2 mouse ps2_mouse.pde


ImagePart IdDescriptionWherePriceDataSheet
PS2 keyboard or mouse connectorminidin 6mouser part$1.04datasheet

PS2WirelessKeyboard


Using NRF24L01 and a minidin connector.
Below sketch seems to work with a modified schematic.
online tutorial
Arduino ide sketch with libraries: wirelessKeyboard.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   PS2Wireless.zip

To modify the pcb, use these Eagle definitions:

PS3Controller interface to PC

I got this controller at good will for $3.28 at goodwill:

There is a Processing library that can be used to interface with it (and other devices). The name of the library is proCONTROLL you can download it from http://creativecomputing.cc/p5libs/procontroll/
Since it is a Processing library you will need to get the Processing ide, compile your applet in Processing and then import that into the arduino ide.
  1. Build an applet that the arduino ide can use
    • Download Processing from http://processing.org/download/
    • download procontroll from http://creativecomputing.cc/p5libs/procontroll/
    • Place procontroll folder in your processing directory: modes/java/libraries
    • Run processing.exe and load example: modes/java/libraries/procontroll/examples/procontroll/procontroll.pde
    • Program will error on controllIO.getDevice call. Cause: We need the device name. To get the device name:
      • Add this line before call to controllIO.getDevice: controllIO.printDevices(); This will display all devices connected. Pick your usb device name.
      • Place that name in the getDevice call. My corrected line looked like this: joypad = controllIO.getDevice("Afterglow controller for PS3");
      • Sketch now ran check this video:youtube

Note: Not sure how to connect this device to an arduino since it a usb device. Perhaps through a usb to serial converter like a cp2102?


PSC04 Shield


A PSC04 can only transmit X10 commands. This is adequate for our purposes. The nrf24l01 pictured below allows us to send X10 commands over a home network.


online tutorial
Build Instructions:


ImagePart IdDescriptionWherePriceDataSheet
470uF capUsed to smooth out power supplymouser part$0.075 
PSC05Send X10 Automation commands via serialebay supplier$13 
3.3 Voltage RegulatorCould be used with 2.4 mHz transceivermouser part$.73datasheet
Male headersbreak away straightebay supplier$0.03 (in packs of 150) 


PSC05 Shield


You can use the atmega built in pull up resistor for D11 you just need to define it with a

pinMode (11,OUTPUT);
and then activate the pull-up resistor:

digitalWrite (11,HIGH);
A shield could be made that allowed the arduino to send X10 Home automation commands via a PSC05

If you just want to transmit you can simplify the wiring: PSC04
online tutorial

ImagePart IdDescriptionWherePriceDataSheet
PSC05Send X10 Automation commands via serialebay supplier$13 


PSXAnalog



Arduino ide sketch with libraries: psxAnalog.zip

ImageDescription
Pinout to cables


PSXAnalogTx


I combined the PSXAnalog project with the nRF24L01 project.
online video
Arduino ide sketch with libraries: psxAnalogTx.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   nRF24L01usbHBridge.zip

To modify the pcb, use these Eagle definitions:

PSXController


psx.h has all button HEX definitions

ImageDescription
Pinout to cables


Raspberry Pi


Raspberry Pi is a $35.00 component that can be purchased from newark.com . It has 17 general purpose I/O pins that can be controlled via python
There is an extender using an MCP23017 located here
A generic pcb called a slice of pi: here
XRF modules can be used by the raspberry pi as shown here
Serial port
Use ifconfig from terminal prompt to show ip address of the raspberry pi, probably something like 192.168.2.16
Use filezilla to upload files here can get filezilla from here use port 22 with username=pi, password=raspberry



Raspberry Pi Next Step

a new file called, say:


Relay

Relay's are nice for motor control because they keep the motor on a power supply isolated from the microcontrollers supply. So there is no feedback to worry about
online tutorial


ImagePart IdDescriptionWherePriceDataSheet
Mini DPDT Relay, only 3 V requiredDouble pull double throw, these have a polaritymouser part$2.06datasheet

RS232

RS232 is used to talk to many components. If you are not using an arduino on pins D0/D1, RS232 will needed to be cleaned up. Sparkfun has a RS232 Shifter which will given you RS232 that a computer can recognize from your atmega device.
You might consider creating an RS232 buffer if you are reading Rs232. A 1M CMOS chip is ideal for this type of buffer. Although this device will need 16 address pins and 8 data pins as well as some control pins. A couple shift registers or an MCP23017 could be used to control the address lines.

ImagePart IdDescriptionWherePriceDataSheet
AS6C10081M CMOS RAMMouser part2.01datasheet

Rumble Robot


Rumble robots are fairly inexpensive ($15ish on E-bay), and cute. They can be hacked by connecting them to an atmega:
Here is a picture of a the board that can be hacked.

Note: These seem to suffer from processor reset a lot. They have a watch battery backup power supply that keeps the microprocessor energized. I have listed the part below.
online tutorial

ImagePart IdDescriptionWherePriceDataSheet
L1154 Watch Battery1.5V used in Rumble Robotsebay supplier$0.07 in packs of 50 


SD Card Shield

Iteadstudio has an SD shield for $9.50 that works ok.

You can use the filelogger library (#include "FileLogger.h") located http://code.google.com/p/arduino-filelogger


A couple items to note:


There is also a read capability library (which I have not tried yet). Located at:http://www.mediafire.com/?2belzmmnzml


Serial Buffer


A serial buffer can be made that buffers in RS232 traffic. The ASC1008 can store 1 million bits which should be more than enough for most applications.

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   asc1008.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
AS6C10081M CMOS RAMMouser part2.01datasheet
HC595shift registerMouser Part0.55datasheet

Serial Camera


Also available here for $4.00 more with tutorial http://www.adafruit.com/products/397 also weather proofed


Servos

Small servos can be driver from the atmega168/328.
Here is a you tube video link

Here is a link to the source code: Source (zipped)
All servos have three wires: Black or Brown is for ground. Red is for power (~4.8-6V). Yellow, Orange, or White is the signal wire (3-5V).
online tutorial


ImagePart IdDescriptionWherePriceDataSheet
ServoUsed with Servo library from www.arduino.cchttp://stores.ebay.com/yks-battery$2.67 

Shift Registers

Shift registers are used to provide additional digital outputs. One popular shift register is the 74HC595. This is available at mouser for about $.50. There is already an arduino library for 74HC595 called ShiftOut.

Nice writeup on connecting one and many 595s together here
online tutorial


SPI

Serial Peripheral Interface

This library is part of the standard set of libraries that is included when you download the Arduino IDE. For an Arduino Uno, or atmega168/atmega328 processor it assumes that these pins are available and will use them:
NamePinDescription
SCKD13Serial Clock
MISOD12Master In Slave Out
MOSID11Master Out Slave In
SSUser Defined (D10 default)Slave Select

Note:These pin definitions are contained in the file:
C:Arduinohardwarearduinovariantsstandardpins_arduino.h (Assuming that you installed the Arduino IDE to windows locations: C:Arduino)

const static uint8_t MOSI = 11;
const static uint8_t MISO = 12;
const static uint8_t SCK  = 13;

online tutorial


SpyGearTank

Spy gear has a tank. I believe that the output from the controller can be fed into a TV through an RCA jack. I need to confirm this. I was able to find the pins that control the movement:



SR04


Library for this module is located at: https://github.com/mrRobot62/Arduino-ultrasonic-SR04-library

ImagePart IdDescriptionWherePriceDataSheet
Ultrasonic Range DetectorSR04 good to about 20 cmEbay Supplier3.08 

StarWarsTank


You have to take this beast all apart to get to the power supply that you will use for the arduino. This monster uses 6 AA batteries separated into 2 compartments of 3 AA each. We want to tap into the positive output of one compartment to get 4.5 volts, and then use the common ground.

The best way to hack these kind of vehicles is:

use this board definition:




StepperMotor


Spark fun has this $15 product which makes controlling a stepper motor easier: Easy Driver

There is an example here that shows how to wire up the device.

ImagePart IdDescriptionWherePriceDataSheet
SN754410H-BridgeMouser part1.88datasheet
Momentary Push ButtonPush Buttons to detectMouser part.18 


StepperMotorShield

You can make your own driver using a darlington array (for a unipolar stepper motor) or Quad-H Bridge for a Bipolar stepper motor. There is an awesome example http://arduino.cc/en/Tutorial/MotorKnob that shows how to wire both on a breadboard. Here are the boards that the example talks about
Unipolar with 2004 Darlington Array



Bipolar with SN754410 Quadruple H-Bridge

another possible library: http://arduino.cc/playground/Main/CustomStepper#Download




Switches

Switches come in a variety of flavors. For every switch type there exists a relay which can perform the same function when a control voltage is applied.

Double pull double throw switches are perfect for controlling forward/reverse on a motor. Connected properly, a motor will run forward on default and reverse when the 5v is passed across the control terminals.


A junk bot typically has a left side motor and a right side motor. One DPDT (double pull double throw) relay is used to control the left motor, and one DPDT relay is used to control the right side. Additionally 1 SPST (single pull single throw) relay is used to control the on/off power to both motors. Warning pcb traces can fry when too much power is passed from battery to motor via relay....better to use strong wires rather than pcb traces!

ImagePart IdDescriptionWherePriceDataSheet
120V outlet controllerGnd and Digital Input Perfect for Atmega 168/328makershed part$20 
Mini DPDT Relay, only 3 V requiredDouble pull double throw, these have a polaritymouser part$2.06datasheet
SPST Reed RelaySingle pull single throw with built in 250 ohm resistorradioshack part$2.99 

Switching Voltage Regulator

If you have ever used a 7805 you will notice that the voltage drop that it is forced to make generates a proportional amount of heat. A switching voltage regulator is more efficient and does not generate so much heat. Based on the datasheet I created a mouser parts kit for about $3.00. This compares to the ebay version for about $10.00 (completed with pcb).
Orderable kit: Mouser Project


ImagePart IdDescriptionWherePriceDataSheet
Switching Voltage RegulatorLM2575-5 5V outputmouser part$2.63datasheet

TA8050A H-Bridge

This is a part that uses 2 PWM outputs to control 1 motor
online tutorial


thermistor


See the .zip file below for source example
online tutorial
Arduino ide sketch with libraries: thermistor.zip

ImagePart IdDescriptionWherePriceDataSheet
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
ThermistorUsed in temperature measurement, needs 10k balance resistorebay supplier$0.20 (in packs of 10) 

TIP120 NPN Transistor


This part can control up to 5A of current and can be used to control a motor (in one direction only).
There must be a common ground with the motor ground and the arduino ground.
Additional tutorial on transistors.

Note:Applying a voltage to the base will allow current to flow.
online tutorial
online video

ImagePart IdDescriptionWherePriceDataSheet
TIP120NPN Darlington Transistormouser part$.68datasheet


TIP125 PNP Transistor


This part can control up to 5A of current, and can also be used to control a motor (one direction only).

Note: Applying a voltage to the base will inhibit the flow of current
online tutorial

ImagePart IdDescriptionWherePriceDataSheet
TIP125PNP Darlington Transistormouser part$.53datasheet


TLC5940 Shield

The TLC5940 can control 16 leds using pwm.
A shield can be made that can allow quicker building of led projects.

online tutorial
Arduino ide sketch with libraries: TLC5940.zip

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   TLC5940Shield.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
RGB DriverTLC5940 RGB Driver, Can control 16 leds with pwm outputhttp://stores.ebay.com/NooElec$2.20 (in packs of 5)datasheet
RGB LED with common anodeCan mix to create other colorshttp://stores.ebay.com/NooElec$.45 (in packs of 25)datasheet

Toy State Industrial Tank

This tank produced in 1999 uses 4 C batteries. This 6 V (roughly) power supply is a good match for reusing the receiver card and power supply without having to create a new power supply or H-Bridge. The trick is figuring out which lines are used to control the tank. Here is a picture of the receiver (back), with control lines identified.
Build Instructions:


ImagePart IdDescriptionWherePriceDataSheet
IR Transmitter17 degrees half intensitymouser part$.36datasheet
IR DetectorIR detector with preampmouser part$.60datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
clock16 megahertzmouser part$0.24datasheet
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
TIP120NPN Darlington Transistormouser part$.68datasheet

TPLink

This is a wireless bridge that can be used as a sensor
Serial can be broken out from the board

for WR703N http://www.instructables.com/id/How-to-set-up-OpenWRT-on-a-pocket-router-WR703N/
leverage rf modules: http://phlegmatic-prototyping.tumblr.com/post/25323114258/connecting-microcontroller-projects-to-the-internet Can plug into usb port?search page for arduino

cool hacks
Add a usb port for cheap webcam


TV_Timeout


Kids watching to much television and playing too much video games? The idea behind this project is to limit the amount of time that they can spend. Children "earn" the time they can spend on the television or playing video games by doing the tasks you need them to do.

Using a standard remote, you can allocate time for them on the timer. When they start watching television, you activate the timer and it begins counting down. This shows how much time they have left and how much longer they can watch.

The next step of this project is to have the timer shut the device off when the time has elapsed. This could be done via X-10 or commercially available outlets that can be turned on or off via an infra red pulse.
online video

ImagePart IdDescriptionWherePriceDataSheet
LED CubeGood for a project box, has 4xAAA battery holderEbay Supplier$3.69 
7 segment LED Display 164 digits, 16 pins, has colon for clockhttp://www.sparkfun.com$1.95datasheet
IR RemoteSony Compatible Remotehttp://stores.ebay.com/toymodel55$1.37 
Female HeaderThrough hole solderebay supplier$0.02 per individual header(in packs of 200) 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet
IR DetectorIR detector with preampmouser part$.60datasheet


UltimateGPS

From adafruit Ultimate GPS
Case


Unlimited IO


This shield has 2 x 4051 multiplexers for analog inputs and 2 x 74THC595 shift registers for digital outputs. The 2 x 4051s are also controlled by 4 outputs of one of the 74HC595 shift register.
The serial output of each shield must be "jumped" to the serial input of the next shield using an smd header. The serial input of the first shield is tied directly to the arduino (D2).
There is an arduino library that I would like to modify for this project : ShiftOutX

Reminder how to read an analog input here
online tutorial

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   4051_HC595.zip

To modify the pcb, use these Eagle definitions:

ImagePart IdDescriptionWherePriceDataSheet
16 pin socketUsed for Shift register and othersMouser part.23 
4051multiplexerMouser Part0.45datasheet
HC595shift registerMouser Part0.55datasheet
PNP Transistor800 mA Collector currentmouser part$0.06datasheet

USB Shield and WII Remote


online tutorial


Usb to Serial programmer

CP2102 is a common usb to serial chip that can be ordered with breakout for about $3.00 (free shipping) on ebay. This works well except for the reset line which is actually a CP2102 reset rather than the atmega reset. The atmega reset is the DTR, which is broken out on the device.

The DTR line will go low (and stay low) after the sketch compiles and upload begins. However the reset line for the atmega needs to stay low only for a moment, so an additional .1 uF capacitor needs to be added to the circuit (between the dtr and the reset pin, d0).

Consequently a jumper should be created from the dtr to the reset pin with a cap inserted if you want to be able to attach and detach this device.


Driver for this device see: VCP driver kit on this page: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx


ImagePart IdDescriptionWherePriceDataSheet
.1 uF capacitorCould be connected to reset line and usb to serial dtr linemouser part$0.05datasheet
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
clock16 megahertzmouser part$0.24datasheet
Atmega168Microcontroller speed:16 megahertz Ram:16Kmouser part$2.77 (in packs of 10)datasheet

usbMissile

Cheeky usb missile launcher

This is a module with surface mounted components. But you can solder to it carefully. Try to use small gauge wire like telephone or wire-wrap.
online video
Arduino ide sketch with libraries: usbMissile.zip

ImagePart IdDescriptionWherePriceDataSheet
Usb Missile LauncherDream Cheeky by Newoamazon part$25 

UsbStick


Arduino on a usb. I made the footprint as small as possible.
Pcb ordered 8/21/2012 Pinout is similiar to the arduino shield footprint just squished.

Warning: the following pcb is not verified yet
Related pcb (Iteadstudio.com can build for $1.40 each in packs of 10)
   usbStick.zip

To modify the pcb, use these Eagle definitions:
ImagePart IdDescriptionWherePriceDataSheet
Usb to Serial ConverterDifferent pinout than FTDI but has all functionality of an FTDIhttp://stores.ebay.com/VirtualVillage-France-Delta?_trksid=p4340.l2563$3.99 
10K ohm resistor1/4 watt through-hole resistormouser part$0.03 (in packs of 100datasheet
ATMEGA328Microcontroller speed:16 megahertz RAM:32Kmouser part$2.73datasheet
220uF capUsed to smooth out power supplymouser part$0.09 
16mhz clockWith center grounding pinMouser Part0.44 

VBDuino


This vb .exe will connect to the arduino and also connect to a chat session on the internet. This will allow another pc to connect and command the arduino. This .zip file contains the executable and required dlls to run.


VideoExperimenter



ImagePart IdDescriptionWherePriceDataSheet
Video Experimenternootropicdesign part$33 

Visual C .Net

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-csharp-express


Voxel Shield

Created to manipulate up to 512 LEDs. See also the LED Cube project

online tutorial


Wifi HBridge

A Wifi H-Bridge can be attached to an ethernet shield to give an arduino wifi capability. This TDLink unit (TL-WR702N) costs about $25.00. http://www.ebay.com/itm/Mini-Nano-Portable-TP-Link-TL-WR702N-150M-802-11n-b-g-WiFi-AP-Wireless-Router-/271044441019?pt=COMP_EN_Routers&hash=item3f1b81f3bb See tutorial below
online tutorial


Wiimote WhiteBoard

You will need a projector for this.
Very good tutorial, below, was able to find the bluetooth usb adapter tbw-105ub on ebay
Needed to download driver from http://www.trendnet.com/downloads/
Also ran this update: http://www.broadcom.com/support/bluetooth/update.php

How to Sync a WiiMote with a PC

Wiimote test app: http://www.wiihacks.com/general-homebrew-hack-issues/240-wiimotetest-app.html

Source code and downloads http://johnnylee.net/projects/wii/
This one should also work: http://www.dealextreme.com/p/super-mini-bluetooth-2-0-adapter-dongle-vista-compatible-11866
online tutorial


Wiimote_Blobs

Read infra-red blobs using a wiimote. Concept: hack a nun-chuck and pass to arduino via wires...

ColorDescriptionArduino Pin
Red3.3VVcc
WhiteGroundGround
GreenDataAnalog pin4
YellowClockAnalog Pin5

Note: Nun-chuck can power the atmega168 chip, also wire library needs change

The tutorial below did it by hacking a wiimote camera however, this tutorial mentions that blobs can be read via the nun-chuck using I2C. click on source code on this post: http://trandi.wordpress.com/2011/05/11/wiimote-ir-camera-with-arduino/ You can also get nun-chuck x/y information : http://www.windmeadow.com/node/37 and http://www.windmeadow.com/node/42
Data on Ir-Camera: http://wiibrew.org/wiki/Wiimote#IR_Camera
Possible pcb schematic: http://trandi.files.wordpress.com/2011/04/irsensor_circuit2.jpg
Disassembling the wiimote for the camera: http://trandi.wordpress.com/2011/04/03/the-wiimote-and-fez-domino/

online tutorial


Writing to TV Display


I created a TVOUT I2C component
Here is a link to a version of code: I2cScreen.pde
online tutorial



X10

This site has already hooked up X10 receive and transmit with IR commands and bluetooth commands

Multiple project site: http://brohogan.blogspot.com/
online tutorial


X10TXOnly

PSC04 or PSC05 can be used
online tutorial
Arduino ide sketch with libraries: PSC05.zip


Comments? Suggestions?
webmaster: paulware@hotmail.com
This web-site is dedicated to all things Arduino