<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Arduino, Processing, And Kinect Hacks.        Also at www.LostOnTwoWheels.com</description><title>Handya - Arduino, Processing, And Kinect Hacks</title><generator>Tumblr (3.0; @handyahardware)</generator><link>http://handya.co.nz/</link><item><title>Wireless Remote for Fuji X100 Camera (or Leica)</title><description>&lt;p&gt;I need the ability to wirelessly take photos, however my camera did not have a conventional shutter release, it has the &lt;a href="http://en.wikipedia.org/wiki/File:OldCamera_CableRelease.jpg"&gt;old fashioned &amp;#8221;cable&amp;#8221; release&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0005.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;After playing around and buying some cheap cable releases off Ebay I was able to build a working wireless &lt;/span&gt;shutter using an Arduino, Servo, and a cheap wireless shutter for a Canon DSLR.&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0002.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;I had thought of using an IR remote however I am planing on using this outside and im not sure how well IR works in direct sunlight. So I went for an RF option.&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7216.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;These remotes have the half press focus option, but as I would not be needing this, and when you bend the wire cable it changes the length of the &amp;#8220;press&amp;#8221; meaning that it would not always work. To make it more reliable it only takes photos without focusing but as I am going to be using manual focus its not a problem.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0008.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;I mounted a servo in a small enclosure and pushes on the cable firing the camera shutter.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0007.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;The servo is controlled by and Arduino that triggers the servo when it gets the command from the wireless remote.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0006.jpg" width="900"/&gt;&lt;/p&gt;
&lt;p&gt;I also mounted the hot shoe adaptor from the old shutter&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/IMG_0003.jpg" width="900"/&gt;&lt;a href="https://gist.github.com/anonymous/5018285"&gt;Arduino Code Here&lt;/a&gt;&lt;/p&gt;</description><link>http://handya.co.nz/post/43777800968</link><guid>http://handya.co.nz/post/43777800968</guid><pubDate>Sat, 23 Feb 2013 17:14:00 +1300</pubDate><category>shutter</category><category>remote</category><category>x100</category><category>fuji</category><category>fuji x100</category><category>leica</category><category>leica m9</category><category>m9</category><category>trigger</category><category>camera</category><category>control</category><category>photo</category><category>canon</category><category>x20</category><category>x100s</category><category>x10</category><category>diy</category><category>dslr</category><category>range finder</category><category>rangefinder</category><category>arduino</category><category>hotshoe</category></item><item><title>Texting Brick Phone</title><description>&lt;p class="p1"&gt;The cell phones at my work are so bad, that when I was given an old 1992 &amp;#8220;Brick&amp;#8221; Mobile Phone, I thought that using a 20 year old phone might be the best way to get them upgraded. It needed to be useable, to make and receive calls, also send and receive text messages and use the phone book. They were so bad the bench mark wasn&amp;#8217;t very high. &lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7261.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p class="p1"&gt;(An old 1992 &amp;#8220;Brick Mobile Phone&amp;#8221; Motorola Ultra Sleek 9660 - &lt;a href="http://www.youtube.com/watch?v=7L3L2J-IjfA"&gt;&lt;span class="s1"&gt;A full teardown can be found on the EEVblog&lt;/span&gt;&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I thought about imbedding a cheap cell phone inside (like with my &lt;/span&gt;&lt;a href="http://handya.co.nz/post/30986829145/cordless-rotary-phone-version-one"&gt;&lt;span class="s1"&gt;rotary phone project&lt;/span&gt;&lt;/a&gt;&lt;span&gt;) but it was more elegant and easier to start from scratch, build my own PCB and program.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Old phones are analog so they obviously dont work on the new digital GSM networks. After doing some investigations I found the &lt;a href="http://small-breakout-for-sim900-gsm-module"&gt;small breakout for sim900 gsm module&lt;/a&gt; it was small enough to fit inside the cellphone, and easy to work with, using &amp;#8220;AT commands&amp;#8221; over serial.&lt;/p&gt;
&lt;p&gt;There was an old 7 digit, 7 segment display but using that would have made it too difficult to send and receive texts. So I replaced it with a modern OLED Screen (&lt;a href="http://www.adafruit.com/products/931"&gt;Adafruit 128x32 OLED&lt;/a&gt;) that would fit in the small display window provided. (unfortunately I could not get good photo of the screen working)&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7247.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The only other DIY cellphone I found was from High-Low Tech, I used there code as a starting point, however there code could not do texting etc or work with any of my hardware, it  was very basic and only displayed and dialed the numbers, so a a lot of work needed to make a usable phone.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7249.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;The next problem was using serial to comunicate with the Sim900 chip, Arduino (atmega 328) chips only have 2k of ram making it very difficult for a noobie programer. I had so meny serial read/writes it would fill up the ram and crash the phone.&lt;/p&gt;
&lt;p&gt;This problem was solved by using two 328 chips, the main chip handles keypad input, graphics, coms to GSM chip, and the second chip handles all sounds (ring tones/ text tones/ buttons pushes) and would detect when the phone is ringing/incoming text and alert the master chip. &lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7248.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;Communication between the two chips was done with outputs/inputs that would be driven low or high as needed. The Sim900 also has outputs that are driven low for 1200ms upon incoming text, or low while the phone is ringing. The second chip would decipher if its a text or call and tell the master, it would then make the appropriate sound.&lt;/p&gt;
&lt;p&gt;The hardest part was trying to get text message input (eg if you press &amp;#8220;2&amp;#8221; three times the letter &amp;#8220;c&amp;#8221; would be displayed) I could not find any good solutions for this online, that worked with a matrix number pad, so I wrote my own.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7251.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;I wanted the phone to look &amp;#8220;stock&amp;#8221; so I designed a PCB that matched the original PCB in &lt;a href="http://www.cadsoftusa.com/"&gt;Eagle&lt;/a&gt;. I also had to design a custom resistive push button for the keypad and painted restive ink onto the original rubber buttons.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7237.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;To get everything to fit I had to use &lt;a href="https://www.sparkfun.com/products/9261"&gt;surface mount Arduino chips&lt;/a&gt;, however I could not find surface mount 328 chips that had the Arduino boot-loader. This was solved by designing an Arduino Shield that programed surface mount chips, you simply hold or clap the surface mount chip down and use the built-in Arduino ISP to program.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7252.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;Finally the battery, I had to cut open and remove the old battery from its case, easier said than done.  I then mounted a 7.2v lipo battery inside and drilled a hole for the charging cable (on the inside so it cant be seen when the battery is on)&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7245.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;The old phone also had the wrong analog antena, it was replaced with a new 900mhz GSM antena, I made sure it was nice and large to fit with the retro look.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" src="https://dl.dropbox.com/u/2722259/website/DSCF7246.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;It actually works, beter than our phones at work. I have been using it for some time now, the only hard part is trying to find a pocket big enough to put it in.&lt;/p&gt;
&lt;p&gt;In version 2.0 I would use all surface mount components including the sim900, and improve the battery design. I would also replace the 328 chips with bigger more powerful one, so I could add features like Tweeting.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/anonymous/4965401"&gt;Download Code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Boards available at BatcbPCB ( Eagle files coming soon)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://batchpcb.com/pcbs/94827"&gt;ATTiny85 and TQFP programer Arduino ISP Shield &lt;/a&gt;&lt;/p&gt;</description><link>http://handya.co.nz/post/43198336217</link><guid>http://handya.co.nz/post/43198336217</guid><pubDate>Sat, 16 Feb 2013 16:29:00 +1300</pubDate><category>hack</category><category>hacking</category><category>hacks</category><category>cell phone</category><category>diy</category><category>gsm</category><category>brick phone</category><category>Motorola Ultra Sleek 9660</category><category>motorola</category><category>hipster</category><category>retro</category><category>arduino</category></item><item><title>Remote Controlled Home Theatre Lights</title><description>&lt;p&gt;&lt;img align="right" height="150" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0077.jpg" width="200"/&gt;I really liked the idea of controlling my &amp;#8220;Home Theatre&amp;#8221; lights with a remote (TV or other), this would save me the exhausting task of heaving myself off the couch to turn the lights on or off.&lt;/p&gt;
&lt;p&gt;I found one of my remotes has a spare power button, its one of those stupid &amp;#8220;universal&amp;#8221; remotes that comes with DVD players or TVs but only work if you have all the same brand equipment, I don&amp;#8217;t so this made a good option for a light switch.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0078.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;Next was receiving the command and switching the lights on/off, again this was made very simple using the &lt;a href="http://adafruit.com/" target="_self"&gt;Adafruit&lt;/a&gt; &lt;a href="http://learn.adafruit.com/ir-sensor" target="_self"&gt;code and instructions on IR commands&lt;/a&gt;, I recorded the IR command and modified the Adafruit code to suit. I also needed the wall switch to work as well, this was done using the spare interrupt pin and the &lt;a href="http://arduino.cc/en/Reference/AttachInterrupt" target="_self"&gt;attachInterrupt()&lt;/a&gt; function.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0075.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;lastly was to build the board and install it in the light switch, I took apart an old 5v USB wall wart and mounted it to the board, this converted the 230v~ to 5v for my Arduino.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Warning: do NOT try this at home unless you KNOW what you are doing as this is 230v AC!! &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Next I used a solid state relay that could switch 230v ~ at 2A it could also be controlled from 5v this meant there was no extra wiring needed from the Arduino. The best part of using a solid state relay is there is no sound when switching the lights on/off.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0071.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;I then mounted it all inside a mounting block to give me extra room, and I drilled a hole for the IR sensor. After some testing and debugging it was all working.&lt;/p&gt;
&lt;p&gt;Download Code: &lt;a href="https://gist.github.com/4116564" target="_self"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0073.jpg" width="640"/&gt;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;</description><link>http://handya.co.nz/post/36127381687</link><guid>http://handya.co.nz/post/36127381687</guid><pubDate>Tue, 20 Nov 2012 20:27:00 +1300</pubDate><category>ir</category><category>remote</category><category>remote control</category><category>home theatre</category><category>Remote Controlled Home Theatre</category><category>arduino</category></item><item><title>Xbox Live Traffic Lights</title><description>&lt;p&gt;The best time to play Xbox Live is when all your friends are online, but whats the best way of checking, you could turn on the Xbox, log on to the website or use the iPhone app, but this requires effort and you can still miss when your friends come online.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0062.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;So I came up with the Xbox traffic lights, now at a glance you can see when the best time to play Xbox. An Arduino with Ethernet shield checks every five minuets to see if anyone is online.&lt;/p&gt;
&lt;p&gt;The biggest problem I had was getting the user data off Xbox Live, as it is a frustratingly closed system, but eventually I found a usable api from &lt;a href="http://www.xboxleaders.com/api/profile/handya.json"&gt;xboxleaders.com&lt;/a&gt;, the only problem is that it only has public information, so it wont work with your friends that have hidden online status. ( Hidden status will always show a &amp;#8220;1&amp;#8221; in the api call, giving you a false green light).&lt;/p&gt;
&lt;p&gt;The Arduino then loads the API for each player, then using the &lt;a href="http://www.arduino.cc/playground/Code/TextFinder"&gt;text finder library&lt;/a&gt; it finds the online status( a &amp;#8220;1&amp;#8221; or &amp;#8220;0&amp;#8221;), if the player is online it incenses the online status variable by one. At the end of the loop the Arduino will turn on one of the lights using that veriable:  Zero players online = RED light, One player online = ORANGE light, Green = two or more players online = GREEN light. obviously this can be changed to suit.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0056.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Once it was all working on my &lt;a href="http://www.freetronics.com/collections/ethernet/products/etherten#.UGfMUPmMFe4"&gt;EtherTen&lt;/a&gt; I build a more permanent solution using &lt;a href="https://www.sparkfun.com/products/9473"&gt;WIZnet W5100&lt;/a&gt;, it has the same chip as the official Ethernet shield but 1/2 the cost. So I don&amp;#8217;t fell so bad putting it in permanent projects.&lt;/p&gt;
&lt;p&gt;Download code: &lt;a href="https://gist.github.com/3805869"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0066.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;The three analog pannel meters that you can see, I will do another blog post about, but they are my download speed, download % and total data used for that month.&lt;/p&gt;</description><link>http://handya.co.nz/post/32580478459</link><guid>http://handya.co.nz/post/32580478459</guid><pubDate>Sun, 30 Sep 2012 20:08:00 +1300</pubDate><category>xbox live</category><category>xbox</category><category>live</category><category>traffic</category><category>traffic lights</category><category>etherten</category><category>freetronics</category><category>ethernet</category><category>hack</category><category>lights</category><category>light</category><category>mod</category><category>WIZnet</category><category>5100</category><category>WIZnet W5100</category><category>xboxleaders</category><category>arduino</category></item><item><title>Kinected Arduino</title><description>&lt;p&gt;I wanted to use my &lt;a href="http://en.wikipedia.org/wiki/Kinect" target="_self"&gt;Kinect sensor&lt;/a&gt; as a input for my&lt;a href="http://arduino.cc/" target="_self"&gt; Arduino&lt;/a&gt; for some up coming projects, I think its one of the best sensors out there, its a pity there isn&amp;#8217;t a Arduino Shield available for Kinect. So for now I have to use my computer, however I could not find easy/good ways of doing it. I wanted something very simple and Arduino user friendly &lt;strike&gt;and no windows involved.&lt;/strike&gt; After much searching and frustration I came across the simplest way for the Arduino and Kinect to be friends.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0050.jpg" width="640"/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Kinect output of X,Y and Z left and right hands displaying on 20x4 Arduino powered LCD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Using &lt;a href="http://processing.org/" target="_self"&gt;Processing&lt;/a&gt;, &lt;a href="http://openkinect.org/wiki/Main_Page" target="_self"&gt;OpenKinect&lt;/a&gt;, and this &lt;a href="http://www.shiffman.net/p5/kinect/" target="_self"&gt;tutorial and library&lt;/a&gt; it was very easy for a Arduino novice. The Arduino IDE is based off Processing, so it&amp;#8217;s very easy to go from one to the other. Geting Processing and the Arduino to talk was easier than expected &lt;a href="http://forums.trossenrobotics.com/tutorials/how-to-diy-128/complete-control-of-an-arduino-via-serial-3300/" target="_self"&gt;using this tutorial&lt;/a&gt; and a line of code in Processing like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;myPort.write(&amp;#8220;/1/4/&amp;#8221;+ handX +&amp;#8221;/&amp;#8221;);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With similar lines on the Arduino end:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;               case 4:&lt;/p&gt;
&lt;p&gt;        {&lt;/p&gt;
&lt;p&gt;          getSerial();&lt;/p&gt;
&lt;p&gt;        int  X= serialdata;&lt;/p&gt;
&lt;p&gt;          break; &lt;/p&gt;
&lt;p&gt;        }&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0052.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;Now that the Arduino has the X, Y and Z values you can control any real world elements, such as a your lights, or a servo etc. You can even get Processing to calculate the angle between your hands, so when your turn your hands (like when driving a car) it will send a 0-360º value to the Arduino for added control.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="498" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0053.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;Useful Resources:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://processing.org/" target="_self"&gt;Processing.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://openkinect.org/wiki/Main_Page" target="_self"&gt;openkinect.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.shiffman.net/p5/kinect/" target="_self"&gt;Kinect library for Processing &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.shiffman.net/p5/libraries/openkinect/openkinect.zip"&gt;Kinect library for Processing Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://forums.trossenrobotics.com/tutorials/how-to-diy-128/complete-control-of-an-arduino-via-serial-3300/" target="_self"&gt;Serial Communication tutorial &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/3805873" target="_self"&gt;The code I used for Arduino and Processing&lt;/a&gt;&lt;/p&gt;</description><link>http://handya.co.nz/post/31326665961</link><guid>http://handya.co.nz/post/31326665961</guid><pubDate>Tue, 11 Sep 2012 20:16:00 +1200</pubDate><category>kinect</category><category>hacks</category><category>hack</category><category>pros</category><category>processing</category><category>simple kinect</category><category>xbox</category><category>freetronics</category><category>arduino</category></item><item><title>Cordless Rotary Phone, Version One</title><description>&lt;p&gt;After coming across some of my old &lt;a href="http://en.wikipedia.org/wiki/Rotary_dial" target="_self"&gt;rotary phones&lt;/a&gt; I wanted to get them working again, but one of the biggest problems with the old phones is they take so long to dial a number that the phone line will go dead or dials the number before you have finshed entering the number.&lt;/p&gt;
&lt;p&gt;I needed the ability to dial the number only when the full number hand been entered. This was solved by using a cordless phone, as they usually only dial the number once you press send, this also made it posible to easily make the phone cordless. Using an &lt;a href="http://www.arduino.cc/" target="_self"&gt;Arduino&lt;/a&gt; for the rotary decoding and my old cordless phone for the rest solved the problem.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="http://dl.dropbox.com/u/2722259/website/photos/IMG_0040.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;First things first was decoding a rotary number, rotary phones send a number of pulses out depending on the number selected, this was done very easy by using &lt;a href="http://www.instructables.com/id/Interface-a-rotary-phone-dial-to-an-Arduino/?ALLSTEPS" target="_self"&gt;this code&lt;/a&gt; found on &lt;a href="http://www.instructables.com/" target="_self"&gt;instructables&lt;/a&gt;, I then edited the code to turn on the corresponding digital output of the Arduino every time it detected a number input.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="480" src="http://dl.dropbox.com/u/2722259/website/photos/IMG_0041.jpg" width="640"/&gt;&lt;/p&gt;
&lt;p&gt;The hardware side was a bit tricky, but the easiest way of doing this was geting the Arduino to &amp;#8220;press&amp;#8221; the cordless phones buttons. This was solved by using an &lt;a href="http://en.wikipedia.org/wiki/Opto-isolator" target="_self"&gt;optocoupler&lt;/a&gt; for each button I wanted to press on the cordless phone. This isolated the Arduino from the phone, and the output of the optocoupler would act like a switch.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="http://dl.dropbox.com/u/2722259/website/photos/IMG_0043.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;By soldering wires to the buttons on the phone and then to the output pins of the optocoupler, the Arduino could simulate pressing the buttons by turning on the optocoupler.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="http://dl.dropbox.com/u/2722259/website/photos/IMG_0046.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;I mounted the old hanger micro switch onto my new control board and used it to send/start a call when lifted and hang up when down, this way you can input the numbers slowly on the rotary pad, and not have the phone disconnect because you are taking too long.&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="http://dl.dropbox.com/u/2722259/website/photos/IMG_0047.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" src="https://dl.dropbox.com/u/2722259/website/photos/IMG_0042.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;All together it works very well, how ever I still need to make the bells work, and install a battery for full portability.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/3805876"&gt;The code&lt;/a&gt;&lt;/p&gt;</description><link>http://handya.co.nz/post/30986829145</link><guid>http://handya.co.nz/post/30986829145</guid><pubDate>Thu, 06 Sep 2012 20:34:00 +1200</pubDate><category>atmega328</category><category>hack</category><category>hacking</category><category>hacks</category><category>phone</category><category>rotary</category><category>rotary phone</category><category>freetronics</category><category>arduino</category></item></channel></rss>
