<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Dk4GSHgyeCp7ImA9WhRaFUU.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009</id><updated>2012-02-18T18:08:49.690+01:00</updated><category term="Serial port" /><category term="Bluetooth" /><category term="About" /><category term="MIDlet" /><category term="Integrated Circuits" /><category term="Ubuntu" /><category term="Project DIY Multi Touch" /><category term="PlayStation 3 Eye" /><category term="Java" /><category term="Project Open Sesame" /><category term="Eclipse" /><title>blog.10100111001.com</title><subtitle type="html">Welcome to the 10100111001est (that's 1337est in binary ;-)) blog in the world! You guessed it, it's a geek blog!

This blog will be a source for people like me who want to create cool things, but don't have a clue about where to start, and ultimately, inspire them to create even more mind-boggling projects!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.10100111001.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.10100111001.com/" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/10100111001" /><feedburner:info uri="10100111001" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkACQnk8fSp7ImA9WxVXGUQ.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-1801816208478813032</id><published>2009-02-18T23:01:00.003+01:00</published><updated>2009-02-18T23:06:03.775+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-18T23:06:03.775+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project DIY Multi Touch" /><category scheme="http://www.blogger.com/atom/ns#" term="PlayStation 3 Eye" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Updating the PS3 Eye driver</title><content type="html">This week kaswy &lt;a href="http://kaswy.free.fr/?q=node/38#ps3"&gt;released&lt;/a&gt; a new version of his driver (V0.3) and there also was a new kernel release for Ubuntu. Some of you might want to update, but also want to keep a working driver, that is the purpose of this post.&lt;br /&gt;&lt;br /&gt;Let's get started, go ahead and install the new Linux kernel using your favourite update manager (e.g. apt-get or Synaptic Package Manager). Reboot your computer after the update to make sure the new kernel is loaded (save the URL to this page so you can follow the rest of the instructions!).&lt;br /&gt;&lt;br /&gt;At this point, you probably don't have a working driver, we're going to fix that. Get the latest version of kaswy's modified driver and extract it to a directory, e.g. ~/src/gspca-ps3eyeMT. It's important that you do not have a build of the old source code present in the directory you extract the source code to, you can prevent that by moving the destination folder to a backup location first if it already exists.&lt;br /&gt;&lt;br /&gt;We need to verify the source will compile for the current kernel, in my case 2.6.27-12-generic. You can check your version with:&lt;br /&gt;&lt;blockquote&gt;$ uname -r&lt;/blockquote&gt;At the time of writing, the source is set to compile for 2.6.27-11-generic, which is not what we want, as this will not work for our situation. But luckily this is easily resolved! Open the hidden config file &lt;span style="font-weight: bold;"&gt;~/src/gspca-ps3eyeMT/v4l/.version&lt;/span&gt; and inspect it's content:&lt;br /&gt;&lt;blockquote&gt;VERSION=2&lt;br /&gt;PATCHLEVEL:=6&lt;br /&gt;SUBLEVEL:=27&lt;br /&gt;KERNELRELEASE:=2.6.27-11-generic &lt;/blockquote&gt;As you can see, the variable KERNELRELEASE does not match our kernel release. Edit the line to match your kernel and save it. Now we are ready to compile the binaries for the new kernel. Execute the following commands:&lt;br /&gt;&lt;blockquote&gt;$ cd ~/src/gspca-ps3eyeMT&lt;br /&gt;$ make&lt;br /&gt;$ sudo make install&lt;br /&gt;$ sudo modprobe gspca_ov534 videomode=04&lt;/blockquote&gt;Your driver should now be installed and loaded!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Side note:&lt;/span&gt; I learned about editing the hidden config file from an explanation from &lt;a href="http://wiki.nuigroup.com/PS3_Eye_on_Linux"&gt;vw_kubel&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-1801816208478813032?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/_3t2Ddg9kck" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/1801816208478813032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/02/updating-ps3-eye-driver.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/1801816208478813032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/1801816208478813032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/_3t2Ddg9kck/updating-ps3-eye-driver.html" title="Updating the PS3 Eye driver" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/02/updating-ps3-eye-driver.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CRH04eip7ImA9WxVXGUQ.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-5522236374216568624</id><published>2009-02-15T22:16:00.006+01:00</published><updated>2009-02-18T23:09:25.332+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-18T23:09:25.332+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project DIY Multi Touch" /><category scheme="http://www.blogger.com/atom/ns#" term="PlayStation 3 Eye" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>PlayStation 3 Eye web cam working on Ubuntu 8.10!</title><content type="html">When I heard about the PS3 Eye cam and what it's capable of, I immediately ordered one for my DIY multi touch table project! It can deliver a staggering 120 frames per second, and it's relatively cheap to other cameras that can do this. I ordered mine for 40 euros. The high frame rate allows for a smaller delay when processing (multi) touch input, see an &lt;a href="http://vimeo.com/2575783"&gt;example here&lt;/a&gt;. This beasty doesn't directly work out of the box, you need to get drivers first. In this post I'll be explaining how to get it working on Ubuntu and the problems I faced while installing the driver. If you are looking for drivers for the PS3 Eye on Windows or Mac, see &lt;a href="http://nuigroup.com/forums/viewthread/2921/"&gt;this thread&lt;/a&gt; or &lt;a href="http://nuigroup.com/forums/viewthread/4344/P0/"&gt;this thread&lt;/a&gt;, respectively.&lt;br /&gt;&lt;br /&gt;First, get the &lt;a href="http://kaswy.free.fr/?q=node/38#ps3"&gt;gspca modified driver&lt;/a&gt; from &lt;a href="http://kaswy.free.fr/?q=node/42"&gt;kaswy&lt;/a&gt;. Extract the source to a directory, e.g. ~/src/gspca-ps3eyeMT. Then issue the following command in a terminal:&lt;br /&gt;&lt;blockquote&gt;$ lsmod | grep gspca&lt;/blockquote&gt;If this command gives you any output, you have to unload the module(s) first. The drivers loaded at the time gave me problems because my computer was running for a long time without rebooting. The loaded drivers were older, when I tried to load the new gspca driver, the two conflicted. So to be on the safe side, it's best you not skip this step. This is an example possible output:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SZiLJ2AM8cI/AAAAAAAAAD4/3BnlL0N7ozs/s1600-h/lsmod.grep.gspca.png"&gt;&lt;img style="cursor: pointer; width: 368px; height: 67px;" src="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SZiLJ2AM8cI/AAAAAAAAAD4/3BnlL0N7ozs/s400/lsmod.grep.gspca.png" alt="" id="BLOGGER_PHOTO_ID_5303141562460205506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Columns are: Module, Size, Used by)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You want to unload the driver that has a 0 in the third column, this unloads the drivers recursively. It's done like this according to the example:&lt;br /&gt;&lt;blockquote&gt;$ sudo modprobe -r gspca_pac207&lt;/blockquote&gt;Verify the driver is unloaded by doing a&lt;br /&gt;&lt;blockquote&gt;$ lsmod | grep gspca&lt;/blockquote&gt;Now, there should be no output.&lt;br /&gt;&lt;br /&gt;If you haven't already, get the build tools for Ubuntu with the following command:&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get install build-essential&lt;/blockquote&gt;Next, we can start compiling, that's done like this:&lt;br /&gt;&lt;blockquote&gt;$ cd ~/src/gspca-ps3eyeMT&lt;br /&gt;$ make&lt;br /&gt;$ sudo make install&lt;br /&gt;&lt;/blockquote&gt;The building process may contain some warnings, but it should finish without errors (some terminology: a warning isn't as bad as an error and warnings should not prevent a successful build).&lt;br /&gt;&lt;br /&gt;Now we load the driver, the working modes for the web cam are:&lt;br /&gt;00: 640x480@15&lt;br /&gt;01: 640x480@30&lt;br /&gt;02: 640x480@40&lt;br /&gt;03: 640x480@50&lt;br /&gt;04: 640x480@60&lt;br /&gt;10: 320x240@30&lt;br /&gt;11: 320x240@40&lt;br /&gt;12: 320x240@50&lt;br /&gt;13: 320x240@60&lt;br /&gt;14: 320x240@75&lt;br /&gt;15: 320x240@100 (added 15/02/09 V0.3)&lt;br /&gt;16: 320x240@125 (added 15/02/09 V0.3)&lt;br /&gt;Say we want to use the mode 640x480 pixels at 60 frames per second (mode 04), we issue the following command:&lt;br /&gt;&lt;blockquote&gt;$ sudo modprobe gspca_ov534 videomode=&lt;span style="font-weight: bold;"&gt;04&lt;/span&gt;&lt;/blockquote&gt;This loads the driver and sets the desired video mode. Adjust the video mode to your own preference.&lt;br /&gt;&lt;br /&gt;Next, we can plug in the PS3 Eye camera. We can verify that it has been plugged in by doing a&lt;br /&gt;&lt;blockquote&gt;$ ls /dev/video*&lt;/blockquote&gt;before you plug in the camera, and then run it again after it's plugged in. It should display a(nother) video device, e.g. /dev/video0.&lt;br /&gt;&lt;br /&gt;To preview the stream, we're going to use VLC, this is an excellent media player, if you don't have it installed, you can simply get it with:&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get install vlc&lt;/blockquote&gt;&lt;br /&gt;Finally, we can open the web cam's video stream:&lt;br /&gt;&lt;blockquote&gt;$ vlc v4l2:///dev/video0&lt;/blockquote&gt;(change /dev/video0 to the correct device if you have more than 1 video device plugged in.)&lt;br /&gt;Voila, you should now have a video feed from the PS3 Eye on Ubuntu! Enjoy!&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 18-feb-09:&lt;/span&gt; new driver V0.3 released by kaswy on 15-feb-09, new video modes added! See &lt;a href="http://blog.10100111001.com/2009/02/updating-ps3-eye-driver.html"&gt;this post&lt;/a&gt; on how to update.&lt;br /&gt;&lt;br /&gt;Side note #1: credit to &lt;a href="http://kaswy.free.fr/?q=en"&gt;kaswy&lt;/a&gt; for helping me install his drivers. This is the &lt;a href="http://nuigroup.com/forums/viewthread/4079/"&gt;thread&lt;/a&gt; on nuigroup.com forums about the PS3 Eye drivers. There is another driver, but kaswy's is the most promising at the moment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Side note #2:&lt;/span&gt; you may unload the drivers with the following command:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;$ sudo modprobe -r gspca_ov534&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:85%;"&gt;And you may uninstall the drivers by running the following command from the source dir you installed from:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;$ sudo make rminstall&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-5522236374216568624?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/28XFGsCBUZE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/5522236374216568624/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/02/playstation-3-eye-web-cam-working-on.html#comment-form" title="22 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/5522236374216568624?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/5522236374216568624?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/28XFGsCBUZE/playstation-3-eye-web-cam-working-on.html" title="PlayStation 3 Eye web cam working on Ubuntu 8.10!" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SZiLJ2AM8cI/AAAAAAAAAD4/3BnlL0N7ozs/s72-c/lsmod.grep.gspca.png" height="72" width="72" /><thr:total>22</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/02/playstation-3-eye-web-cam-working-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGSXg6fyp7ImA9WxVXF08.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-3327092790812212435</id><published>2009-02-15T21:02:00.002+01:00</published><updated>2009-02-15T21:23:48.617+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-15T21:23:48.617+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project DIY Multi Touch" /><title>DIY Multi Touch table</title><content type="html">I started a new project (well, I actually started it a long time ago and I'm now resuming it). It's a do-it-yourself multi touch table! Take a look at the following movie to get an idea of what a Multi Touch device is, it inspired me to build my own:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ysEVYwa-vHM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ysEVYwa-vHM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I'm building a table that uses FTIR and has a 80 cm x 60 cm screen, my test machine is running Ubuntu 8.10, Intel quadcore Q9550, 4 GB of RAM and a nVidia 9800GTX+ 512MB video card.&lt;br /&gt;&lt;br /&gt;It'll be a challenge to get this working on Linux, as this hasn't been done/documented a lot before. Documenting my progress on Linux will be my gift back to the multi touch community that is out there!&lt;br /&gt;&lt;br /&gt;When the table is finished, I also want to write software for it that makes use of multi touch (it's kind of boring to have a MT table with single touch programs on it!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-3327092790812212435?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/hPMAM4Z4Izk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/3327092790812212435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/02/diy-multi-touch-table.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/3327092790812212435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/3327092790812212435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/hPMAM4Z4Izk/diy-multi-touch-table.html" title="DIY Multi Touch table" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/02/diy-multi-touch-table.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEMRHs6fCp7ImA9WxVQFks.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-2307784875262030041</id><published>2009-02-01T19:22:00.011+01:00</published><updated>2009-02-03T12:31:25.514+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-03T12:31:25.514+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="MIDlet" /><category scheme="http://www.blogger.com/atom/ns#" term="Serial port" /><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth" /><title>Getting the tools for Java, Bluetooth, MIDlet and Serial port</title><content type="html">Before we dive into the source code, I thought it would be a good idea to explain where to get the tools needed for developing mobile applications. These are the tools:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java Development Kit&lt;/li&gt;&lt;li&gt;Eclipse&lt;/li&gt;&lt;li&gt;Sun Java Wireless Toolkit for CLDC&lt;/li&gt;&lt;li&gt;EclipseME&lt;/li&gt;&lt;li&gt;Bluecove (java bluetooth library)&lt;/li&gt;&lt;li&gt;Java Runtime Environment for your mobile phone&lt;/li&gt;&lt;li&gt;RXTX (serial port library)&lt;/li&gt;&lt;/ul&gt;The best part is, is that these tools are supposed to be working on Windows, Linux and Mac OS! (I haven't tested that, though!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java Development Kit (JDK)&lt;/span&gt;&lt;br /&gt;The application is coded in Java, and so are MIDlets. You can get a JDK from &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;Sun&lt;/a&gt; or &lt;a href="http://openjdk.java.net/"&gt;openJDK&lt;/a&gt;. Mac OS already has a JDK installed &lt;a href="http://developer.apple.com/java/"&gt;by default&lt;/a&gt;. At the time of writing, I'm using openJDK 6 on Ubuntu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eclipse&lt;/span&gt;&lt;br /&gt;You should have heard about Eclipse before, if you haven't, try a quick Google search to find out more about it. In short: it's an open source &lt;acronym title="Integrated Development Environment"&gt;IDE&lt;/acronym&gt;, we'll be doing all of the coding with this program. Go to their &lt;a href="http://www.eclipse.org/downloads/"&gt;download page&lt;/a&gt; and download Eclipse IDE for Java EE Developers (~160 MB). Always download the latest version, but FYI I used Eclipse 3.4 a.k.a. Ganymede.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sun Java Wireless Toolkit for CLDC&lt;/span&gt;&lt;br /&gt;We are going to use this toolkit to run our MIDlets in an emulated device, &lt;a href="http://java.sun.com/products/sjwtoolkit/download.html"&gt;get it here&lt;/a&gt;. &lt;span style="font-style: italic;"&gt;Update&lt;/span&gt;: there is no official support for Mac OS, but &lt;a href="http://javablog.co.uk/2008/01/17/j2me-development-on-os-x-revisited/"&gt;this guy&lt;/a&gt; seems to have got it working.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EclipseME&lt;/span&gt;&lt;br /&gt;EclipseME is an Eclipse plugin to help develop J2ME MIDlets. On their site there is a very detailed &lt;a href="http://eclipseme.org/docs/installation.html"&gt;installation guide&lt;/a&gt;. In short:&lt;br /&gt;Make sure you downloaded and installed Eclipse and the Sun Java Wireless Toolkit for CLDC first. Use the update manager in Eclipse to install EclipseME (it's all covered in the installation guide).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bluecove&lt;/span&gt;&lt;br /&gt;BlueCove is a Java library for Bluetooth (JSR-82 implementation), without such a library we are unable to use Bluetooth in our applications. Here's the &lt;a href="http://code.google.com/p/bluecove/downloads/list"&gt;download link&lt;/a&gt;. You need only one or two files depending on your operating system. Windows/Mac users only need bluecove-x.x.x.jar, Linux users also need the bluecove-gpl-x.x.x.jar file. (Latest stable version at time of writing: 2.1.0.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java Runtime Environment (JRE) for your mobile phone&lt;/span&gt;&lt;br /&gt;A lot of devices come with a JRE nowadays, however, not all those devices support the Bluetooth specification, also known as JSR-82. That means that even if your device has Bluetooth, you would not be able to use it with your Java application. Check your device manual or see this (incomplete afaik) &lt;a href="http://www.javabluetooth.com/jsr82devices.html"&gt;list&lt;/a&gt; of devices which support JSR-82 natively, if your device has a JSR-82 implementation, you're in luck.&lt;br /&gt;If your device does not have a JRE, you have to install one yourself if possible. If it's not possible, you will have to look for another device to test it on.  Note that you do not need to have a JRE on your device to begin writing and testing the application, but I recommend you install it, without it, you won't be able to fully test your application (I'll disclose why in another post). phoneME is a very promising JRE for Windows Mobile. Precompiled binaries are &lt;a href="http://www.cs.kuleuven.be/%7Edavy/phoneme/index.php?q=node/10"&gt;available here&lt;/a&gt;, make sure you download the phoneME Advanced Dual Stack version, the other versions are not capable of supporting Bluetooth and MIDlets. You need to copy a few files from Bluecove into the phoneME installation to enable the Bluetooth library on your Windows Mobile device, see &lt;a href="http://www.cs.kuleuven.be/%7Edavy/phoneme/?q=node/18"&gt;this description&lt;/a&gt;.&lt;br /&gt;If you're interested in more information about phoneME, you can also visit the &lt;a href="https://phoneme.dev.java.net/"&gt;official phoneME project website&lt;/a&gt;. As an alternative to phoneME, you can also &lt;a href="http://www2s.biglobe.ne.jp/%7Edat/java/project/jvm/download_en.html"&gt;download Mysaifu JVM&lt;/a&gt; (currently version 0.4.1). This JRE cannot run MIDlets, though, but it can run Bluetooth enabled applications in combination with Bluecove. I do not have any experience with other mobile device operating systems, so if you do not have Windows Mobile and do not have a JSR-82 capable device, you'll have to do a little research of your own.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RXTX (serial port library)&lt;/span&gt;&lt;br /&gt;We are going to address the serial port directly with Java. (Yes, you can send data to the serial port from command line, but who'd use such a crude programming method? :) ) We need the RXTX library for this, &lt;a href="http://users.frii.com/jarvi/rxtx/download.html"&gt;get it here&lt;/a&gt;. If you're on Ubuntu, you can install the package 'librxtx-java', the library will be available at /usr/share/java/RXTXcomm.jar.&lt;br /&gt;&lt;br /&gt;When you downloaded and installed all the software, you're ready to start your first project (e.g. Bluetooth application). I will cover this another time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-2307784875262030041?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/d7Ym9sJSPnI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/2307784875262030041/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/02/getting-tools-for-java-bluetooth-midlet.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/2307784875262030041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/2307784875262030041?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/d7Ym9sJSPnI/getting-tools-for-java-bluetooth-midlet.html" title="Getting the tools for Java, Bluetooth, MIDlet and Serial port" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/02/getting-tools-for-java-bluetooth-midlet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUBQ30zfip7ImA9WxVQEUs.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-363310242239711981</id><published>2009-01-28T15:48:00.012+01:00</published><updated>2009-01-28T18:04:12.386+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T18:04:12.386+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="Serial port" /><category scheme="http://www.blogger.com/atom/ns#" term="Integrated Circuits" /><title>Finally, the serial port is interfaced</title><content type="html">The Transmit Data pin (#3) will require a little more attention. How will the signal (in other words: the wave) be interpreted by the IC? I'll be sending data according to the &lt;a href="http://en.wikipedia.org/wiki/RS-232#Voltage_levels"&gt;RS232&lt;/a&gt;. The signal is a block type wave, a 0 bit is represented as positive voltage (also called a “space”), a 1 bit is represented as negative voltage (called a “mark”). Furthermore, if the data line is idle, the signal is “spacing” (meaning, it's negative). How a byte is sent, depends on the following parameters: baud rate, byte encoding (e.g. 7-bit or 8-bit), presence of the parity bit (which is optional) and the number of stop bits. I stuck with the default parameters and thus didn't give them any special attention.&lt;br /&gt;&lt;br /&gt;Let's visualize how this wave will look like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SYBwnfsfgdI/AAAAAAAAACo/NkZDHVOOrXs/s1600-h/Rs232_oscilloscope_trace.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 271px;" src="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SYBwnfsfgdI/AAAAAAAAACo/NkZDHVOOrXs/s400/Rs232_oscilloscope_trace.jpg" alt="" id="BLOGGER_PHOTO_ID_5296356985613025746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that I know how it's looks like, I can modify it to my liking. First of all, I do not want it to send out a signal when the line is idle (or else my front door would be open all the time!). This is accomplished by adding a diode to the TD wire. This means that I can only use the positive signal to send to my front door switch. Next, whenever I send a byte out the serial port, I'd like it to be as continuous as possible. Therefore I send out only 0 bits, this is called a &lt;a href="http://en.wikipedia.org/wiki/Null_character"&gt;null character&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Serial ports cannot give a lot of amps, and I actually don't know how much amps my front door system will ask of my serial port (or even if it will ask any at all) once the current starts flowing. As it turns out, anything below 500 mA &lt;a href="http://www.beyondlogic.org/serial/serial.htm#1"&gt;should be safe&lt;/a&gt;, so that's the rated current for my fuse (if it breaks I'll know my front door system sucks out to much juice and I'll have to come up with something else).&lt;br /&gt;&lt;br /&gt;Finally, I know how the entire picture looks like, here's how it looks like schematically:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SYB_Ne3ToFI/AAAAAAAAACw/8pAWH8C5tyI/s1600-h/frontdoor-switch-IC-complete.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 124px;" src="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SYB_Ne3ToFI/AAAAAAAAACw/8pAWH8C5tyI/s400/frontdoor-switch-IC-complete.png" alt="" id="BLOGGER_PHOTO_ID_5296373031387766866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(click for larger image)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's all in place, it's time to test for the first time if all my research that I've done so far will suffice! I plugged in the connector, fired up a prompt, and elegantly typed:&lt;br /&gt;&lt;blockquote&gt;$ echo 0 &gt; /dev/ttyS0&lt;/blockquote&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Side note:&lt;/span&gt;&lt;span style="font-size:85%;"&gt; I'm actually sending out the bits 0110000 (= ASCII code 48 = 0). I was anxious to try it out and I couldn't be bothered at the time on finding out how to send a null character to my serial port from command line :-) (which is "&lt;span style="font-style: italic;"&gt;echo -en \\0000 &gt; /dev/ttyS0&lt;/span&gt;" on Linux, btw.)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Side note #2:&lt;/span&gt;&lt;span style="font-size:85%;"&gt; /dev/ttyS0 is the serial port under Linux, doing a “&lt;span style="font-style: italic;"&gt;echo 0 &gt; COM1&lt;/span&gt;” in Windows will have the same effect.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;W000000000000000T! My doors opened! I couldn't believe it! So naturally I tried it again, hmm, that's odd, the doors didn't open...&lt;br /&gt;&lt;br /&gt;My first assumption was that the fuse had blown, so I checked that, but it wasn't. Next, I tried to echo data to the serial port again, and again, and again, but this time with more bytes:&lt;br /&gt;&lt;blockquote&gt;$ echo 0000000000000000 &gt; /dev/ttyS0&lt;/blockquote&gt;That worked! Apparently the front door black box system has to receive the signal at a given moment for a given amount of time, or else the door will not open. I just was VERY lucky that it opened on the first time, with just sending 1 byte (or else I might have assumed something wasn't working and I'd be stuck for a long time figuring this out). Maybe that adjusting the baud rate of the port would solve this problem, but I'll settle for sending more bytes (so I can send “I AM 1337! 101100111001!” to my front door, and it opens in fear of me :-))&lt;br /&gt;&lt;br /&gt;So far so good, this was the easy part! I'll be posting about my Java Bluetooth application for my server and phone in a short while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-363310242239711981?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/RUaHt65sBh8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/363310242239711981/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/finally-serial-port-is-interfaced.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/363310242239711981?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/363310242239711981?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/RUaHt65sBh8/finally-serial-port-is-interfaced.html" title="Finally, the serial port is interfaced" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SYBwnfsfgdI/AAAAAAAAACo/NkZDHVOOrXs/s72-c/Rs232_oscilloscope_trace.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/finally-serial-port-is-interfaced.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcNQXw7cCp7ImA9WxVQEUU.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-8146327964745746659</id><published>2009-01-27T00:29:00.005+01:00</published><updated>2009-01-29T00:08:10.208+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T00:08:10.208+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth" /><title>Never buy indentical Bluetooth adapters</title><content type="html">I recently bought 2 Bluetooth adapters, so that I could test between 2 computers. However, both adapters have the same MAC address, and you cannot pair to your own MAC address, yay! So here's a piece of advice, when buying 2 adapters for testing, do not buy identical ones! ;-)&lt;br /&gt;&lt;br /&gt;So far I haven't found out how to change the MAC address of the adapter, if anyone has a suggestion, I'm more than happy to hear it. The brand is Qmotion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-8146327964745746659?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/whM39568lGk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/8146327964745746659/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/never-but-same-bluetooth-adapters.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/8146327964745746659?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/8146327964745746659?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/whM39568lGk/never-but-same-bluetooth-adapters.html" title="Never buy indentical Bluetooth adapters" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/never-but-same-bluetooth-adapters.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAMQHY_eyp7ImA9WxVQEUs.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-4690619894856570379</id><published>2009-01-26T17:30:00.006+01:00</published><updated>2009-01-28T17:39:41.843+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T17:39:41.843+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="Serial port" /><category scheme="http://www.blogger.com/atom/ns#" term="Integrated Circuits" /><title>Further research on how to interface the serial port</title><content type="html">I choose the 9-pin serial port, so how do I proceed now? I asked myself the following questions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What does each of the 9 pins do?&lt;/li&gt;&lt;li&gt;Which pins do I actually need?&lt;/li&gt;&lt;li&gt;What will my cable look like?&lt;/li&gt;&lt;li&gt;What does the signal coming from the data pin look like?&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;The connector&lt;/span&gt;&lt;br /&gt;So I fired up Google, did a search on “&lt;a href="http://www.google.com/search?hl=en&amp;amp;q=serial+port&amp;amp;btnG=Google+Search&amp;amp;aq=f&amp;amp;oq="&gt;serial port&lt;/a&gt;” and lots of information about the connectors showed up, I'll summarize it here (for the 9-pin variant):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SYCJ5Oe3gdI/AAAAAAAAAC4/ujJVeqR321A/s1600-h/serial-port-9-pins-numbered.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 103px;" src="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SYCJ5Oe3gdI/AAAAAAAAAC4/ujJVeqR321A/s200/serial-port-9-pins-numbered.jpg" alt="" id="BLOGGER_PHOTO_ID_5296384778020815314" border="0" /&gt;&lt;/a&gt; &lt;style type="text/css"&gt;&lt;!--   @page { size: 8.5in 11in; margin: 0.79in }   TD P { margin-bottom: 0in }   P { margin-bottom: 0.08in }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;table style="color: rgb(0, 0, 0);" width="100%" border="1" cellpadding="4" cellspacing="0"&gt;  &lt;col width="17"&gt;  &lt;col width="39"&gt;  &lt;col width="59"&gt;  &lt;col width="141"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Pin #&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Abbreviation&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Function&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;1&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;CD&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Carrier Detect&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Used by modem to signal that it is connected to a    working phone line.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;2&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;RD&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Receive Data&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Local device receives data sent from the other    device.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;3&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;TD&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Transmit Data&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Local device transmits data to the device at the    other end.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;4&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;DTR&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Data Terminal Ready&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Local device sends a signal that it is ready to    transmit.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;5&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;SG&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Signal Ground&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Ground.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;6&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;DSR&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Data Set Ready&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Remote device signals if it's ready to transmit.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;7&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;RTS&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Request To Send&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Local device requests if remote device is ready to    receive data.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;8&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;CTS&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Clear To Send&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Remote device acknowledges that it's ready to    receive data.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="7%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;9&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="15%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;RI&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="23%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Ring Indicator&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="55%"&gt;    &lt;p&gt;&lt;span style="font-size:85%;"&gt;Used by modem to indicate that it has detected a    ringing signal on the phone line.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="margin-bottom: 0in;"&gt;Well, since my IC is not a modem, I am not going to use pins 1 and 9. My IC does not send feedback, so that excludes pin 2. So far, that leaves pins 3 – 8. Let's examine pins 4 and 6 a little closer: pin 4 sends a signal out that to tell that it's ready to transmit, and pin 6 is waiting for an incoming signal which means the other device is also ready to transmit. The IC is ready to receive data at any given time, so I will connect pin 4 to pin 6, which in fact tells the port that it's ready to transmit as soon the computer itself is ready. I also will connect pin 7 to pin 8 (check out the table to see why that is). Pin 5, I will leave this pin unconnected, since my IC is already grounded at another point. And last but not least, the Transmit Data pin (#3) will be used to send data to the IC.&lt;br /&gt;&lt;br /&gt;So the connector which goes into my computer will look like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SX3eyNgXS3I/AAAAAAAAACE/NvG3Q_nsnS4/s1600-h/custom-connector-schema.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 159px;" src="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SX3eyNgXS3I/AAAAAAAAACE/NvG3Q_nsnS4/s320/custom-connector-schema.png" alt="" id="BLOGGER_PHOTO_ID_5295633691057802098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Side note&lt;/span&gt;: there are 9 pin connectors which are easy to disassemble, specially designed to be altered to your own needs. I used one that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SX3j3ins0dI/AAAAAAAAACU/LidkbBw5QoE/s1600-h/easy-serial-connector.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SX3j3ins0dI/AAAAAAAAACU/LidkbBw5QoE/s200/easy-serial-connector.jpg" alt="" id="BLOGGER_PHOTO_ID_5295639280183202258" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SX3kOrQ8XBI/AAAAAAAAACc/T4brV-V4nkY/s1600-h/easy-serial-connector-opened.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SX3kOrQ8XBI/AAAAAAAAACc/T4brV-V4nkY/s200/easy-serial-connector-opened.jpg" alt="" id="BLOGGER_PHOTO_ID_5295639677640662034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Side note #2&lt;/span&gt;: on Ubuntu, I used the program “&lt;span style="font-weight: bold;"&gt;statserial&lt;/span&gt;” to inspect the idle state of my serial port, when my connector was connected.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_dWLAGJeDSvQ/SX3jpk970JI/AAAAAAAAACM/bY6oYtlRWmg/s1600-h/statserial.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 212px;" src="http://1.bp.blogspot.com/_dWLAGJeDSvQ/SX3jpk970JI/AAAAAAAAACM/bY6oYtlRWmg/s320/statserial.png" alt="" id="BLOGGER_PHOTO_ID_5295639040295162002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The question remaining here, is how does the signal (or wave) coming from the TD pin look like? I will be going into more detail about this in my next post. Stay tuned!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-4690619894856570379?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/qEZOuS_27rw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/4690619894856570379/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/further-research-on-how-to-interface.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/4690619894856570379?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/4690619894856570379?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/qEZOuS_27rw/further-research-on-how-to-interface.html" title="Further research on how to interface the serial port" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_dWLAGJeDSvQ/SYCJ5Oe3gdI/AAAAAAAAAC4/ujJVeqR321A/s72-c/serial-port-9-pins-numbered.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/further-research-on-how-to-interface.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMNQHw_fCp7ImA9WxVQEUg.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-7278876336334047282</id><published>2009-01-26T16:56:00.015+01:00</published><updated>2009-01-28T15:21:31.244+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T15:21:31.244+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="Serial port" /><category scheme="http://www.blogger.com/atom/ns#" term="Integrated Circuits" /><title>Determining which port to interface on</title><content type="html">There are multiple ports on a computer to which you can interface, each has it's own pros and cons. My requirements were as follow:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it must be cheap,&lt;/li&gt;&lt;li&gt;it must be able to operate over distances greater than 10 meters,&lt;/li&gt;&lt;li&gt;I prefer not to use soldering iron extensively, because I suck at it :-) (note to self: take a soldering course).&lt;/li&gt;&lt;/ul&gt;I opted for the serial port, since I only needed 1 output pin which either has a signal or no signal; and it's cheaper compared to the other options. There were 3 ports which came to mind when deciding which one to use:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Parallel port&lt;/li&gt;&lt;li&gt;Serial port (also known as the COM port)&lt;/li&gt;&lt;li&gt;USB port&lt;/li&gt;&lt;/ul&gt;Let's review their characteristics first:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parallel port&lt;/span&gt;&lt;br /&gt;The parallel port offers 8 pins for data (it can send 8 bits, 1 byte, at the same time, hence the name parallel port). A bit with the value 1 is represented as a 5V signal, and a 0 bit is simply no voltage (0 V). 5V is perfect to work with, since IC do not require a high voltage. This port has 25 (!) pins in total and the male side of this cable has 36 pins (soldering hell!!).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Serial port&lt;/span&gt;&lt;br /&gt;This port has 2 data pins, namely a read pin and a write pin. The total number of pins is 9. Not all pins need to be connected, hence a cable for this port is easily self-constructed and relatively cheap compared to a parallel cable. The data pins can deliver a voltage between -25 V and +25V, so a 50V &lt;a href="http://www.bcae1.com/voltages.htm"&gt;peak-peak voltage&lt;/a&gt; can be drawn from this port. Note that a lower voltage may be drawn (it usually operates at ± 5 - 12 V), which is more desirable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;USB port&lt;/span&gt;&lt;br /&gt;This one is tricky, I realized that when you connect an USB-device, the operating system usually asks the device what kind of device it is and other sorts of information. So in order to provide this information to the OS, you need an USB micro controller. I don't have an exact price range for this kind of hardware, but a quick search at my favorite supplier told me they have USB micro controller starter kits in the range of 65 – 200 Euro. (The actual controller itself is cheaper, but since neither the intended audience, or myself for that matter, has a clue how to use that thing, it's likely we need the starters kit which has some examples and documentation with it). The USB port has 4 pins, 2 for the power circuit which gives a continues ~5V and the other 2 are for data transmission.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Side note&lt;/span&gt;: In my case, I used an external power source for the IC, so I did not need to pay attention to the maximum amount of amps I can draw from the port, if you're planning on using the port as a power source, find out how much it can supply before it fries (it's usually not very high).&lt;br /&gt;&lt;br /&gt;So the serial port is the cheapest option, requires the least amount of soldering and since I can create my own cable, it will be possible to make it over 10 meters long. Perfect!&lt;br /&gt;&lt;br /&gt;In my next post I will explain how to create the connector.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-7278876336334047282?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/nZ4P4dp20kU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/7278876336334047282/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/determining-which-port-to-interface-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/7278876336334047282?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/7278876336334047282?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/nZ4P4dp20kU/determining-which-port-to-interface-on.html" title="Determining which port to interface on" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/determining-which-port-to-interface-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcBSXszcSp7ImA9WxVQEkg.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-3359659519913023500</id><published>2009-01-25T23:55:00.028+01:00</published><updated>2009-01-29T20:24:18.589+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T20:24:18.589+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="Integrated Circuits" /><title>Integrated Circuit to open the front door</title><content type="html">I'm blessed with a home that has an automatic sliding door, and these generally come with a button that opens the door from the inside (our door is set not to open on proximity, since the entrance is unmonitored). Of course, if you have a door that has to be manually operated, you'd have to create your own opening mechanism, which I won't be writing about (at least not anytime soon). The button looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dWLAGJeDSvQ/SX0FTK7kOEI/AAAAAAAAABY/f9WHjGTOtGU/s1600-h/frontdoor-switch.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_dWLAGJeDSvQ/SX0FTK7kOEI/AAAAAAAAABY/f9WHjGTOtGU/s320/frontdoor-switch.jpg" alt="" id="BLOGGER_PHOTO_ID_5295394563767416898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(click for larger image)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The red arrows indicate the contact points. What happens when the button is pressed, is that a contact is made and the door opens. What we want to achieve is simulate that the button has been pressed by creating the contact ourselves (no, not by creating a robot with wi-fi that presses the button on command, there is an easier way ;-)). We can do this simply by the means of a transistor and it would look like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dWLAGJeDSvQ/SXzvUwHaaeI/AAAAAAAAABI/dW2wYwToT1A/s1600-h/frontdoor-switch-IC.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 216px;" src="http://4.bp.blogspot.com/_dWLAGJeDSvQ/SXzvUwHaaeI/AAAAAAAAABI/dW2wYwToT1A/s400/frontdoor-switch-IC.png" alt="" id="BLOGGER_PHOTO_ID_5295370401673275874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;This diagram is made with &lt;a href="http://ktechlab.org/" title="KTechlab is an open source IDE for microcontrollers and electronics."&gt;KTechlab&lt;/a&gt; (linux users), by the way. If you're a Windows user and want to simulate a circuit, try getting your hands on a student license for &lt;a href="http://www.ni.com/multisim/"&gt;Multisim&lt;/a&gt; if your university offers this. You can also download a trial.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Come to think of it, I wasn't entirely accurate about the "simply" part. It was possible in my situation to use a (NPN) transistor, but I had to account for the following:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SXz0kXuTnoI/AAAAAAAAABQ/dZINbGMYjzI/s1600-h/100px-BJT_symbol_NPN.svg.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 118px;" src="http://3.bp.blogspot.com/_dWLAGJeDSvQ/SXz0kXuTnoI/AAAAAAAAABQ/dZINbGMYjzI/s320/100px-BJT_symbol_NPN.svg.png" alt="" id="BLOGGER_PHOTO_ID_5295376167561567874" border="0" /&gt;&lt;/a&gt;Let's examine the transistor I used a little closer, it has 3 terminals: Collector, Emitter and Base. As the symbol indicates, the current can flow from C to E, but not the other way around from E to C (if you don't have a clue why, that arrow is called a diode and it only allows current to pass in the direction the arrow is in; but then again you probably should know that). This means that only a Direct Current (DC) is allowed to pass! Hmm, wait a second, do I know for sure that the circuit that controls the door operates on DC? No, I don't! So, I get out my multimeter and test for it (which I had to buy for this purpose, but I didn't think it would be the last time I used it, so I decided it was worth it. Those things are cheaper than you'd expect, I got one for 8 euro at a local shop I deem expensive). As it turns out, the door switch circuit operates on AC (the voltage on the switch was about 82 Volts).&lt;br /&gt;&lt;br /&gt;But, if I send a direct current (DC) in the right direction, the door opens anyway. Lucky me! I found this out while doing measurements with the "Diode and buzzer" setting on my multimeter. What this setting does is, that it allows a DC to pass, and when it does, the buzzer sounds to indicate that the two points are connected. (If this doesn't work for you, you need a &lt;a href="http://www.kpsec.freeuk.com/components/relay.htm"&gt;relay&lt;/a&gt; instead of a transistor, which allows for AC to flow. &lt;a href="http://web.archive.org/web/*/http://www.kpsec.freeuk.com/components/relay.htm"&gt;Mirror&lt;/a&gt; in case of failure.) So when putting the transistor in place, I have to take notice that the DC that activates the door switch is allowed to pass.&lt;br /&gt;&lt;br /&gt;Later on, we will see that interfacing this IC to a computer, will need some precautions that are not yet shown here.&lt;br /&gt;&lt;br /&gt;If you want to learn more about transistors, &lt;a href="http://en.wikipedia.org/wiki/Transistor"&gt;Wikipedia&lt;/a&gt; is always a good place to start and &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=transistor&amp;amp;btnG=Google+Search&amp;amp;aq=f&amp;amp;oq="&gt;Google&lt;/a&gt; (click for search results on "Transistor") is your best friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-3359659519913023500?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/vCVXoW8e3Jg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/3359659519913023500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/integrated-circuit-to-open-frontdoor.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/3359659519913023500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/3359659519913023500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/vCVXoW8e3Jg/integrated-circuit-to-open-frontdoor.html" title="Integrated Circuit to open the front door" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_dWLAGJeDSvQ/SX0FTK7kOEI/AAAAAAAAABY/f9WHjGTOtGU/s72-c/frontdoor-switch.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/integrated-circuit-to-open-frontdoor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYEQn4zcCp7ImA9WxVQEkg.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-4809528793334759720</id><published>2009-01-25T22:24:00.011+01:00</published><updated>2009-01-29T20:25:03.088+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T20:25:03.088+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Project Open Sesame" /><category scheme="http://www.blogger.com/atom/ns#" term="MIDlet" /><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth" /><title>Open front door using Bluetooth</title><content type="html">Well, this is the start of a description of a project I recently finished! I can open my front door, without even touching the door, using my phone! Here is a preview of what I used for this and what's to come on this blog:&lt;br /&gt;&lt;br /&gt;- Java MIDlet on my phone,&lt;br /&gt;- Java application on a server near the front door that listens for incoming requests,&lt;br /&gt;- Integrated Circuit (IC) which opens up the front door,&lt;br /&gt;- Interface to that IC, using the serial port of the server.&lt;br /&gt;&lt;br /&gt;Check out the video below to see it working in action!&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-16820844d8d393d5" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v2.nonxt1.googlevideo.com/videoplayback?id%3D16820844d8d393d5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332109213%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D556D669388A3A7516171D8908FD18D3F1A98BB49.763A7D82A8EA299895BE97E927A9CFB8017F770B%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D16820844d8d393d5%26offsetms%3D5000%26itag%3Dw160%26sigh%3DxSAfzUA4mgLljk6z7rnQleKZtjM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v2.nonxt1.googlevideo.com/videoplayback?id%3D16820844d8d393d5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332109213%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D556D669388A3A7516171D8908FD18D3F1A98BB49.763A7D82A8EA299895BE97E927A9CFB8017F770B%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D16820844d8d393d5%26offsetms%3D5000%26itag%3Dw160%26sigh%3DxSAfzUA4mgLljk6z7rnQleKZtjM&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;
&lt;br /&gt;&lt;br /&gt;Note: click on the tag &lt;a href="http://blog.10100111001.com/search/label/Project%20Open%20Sesame"&gt;Project Open Sesame&lt;/a&gt; for all posts related to this project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-4809528793334759720?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/vAeMu1I7DMM" height="1" width="1"/&gt;</content><link rel="enclosure" type="video/mp4" href="http://www.blogger.com/video-play.mp4?contentId=16820844d8d393d5&amp;type=video%2Fmp4" length="0" /><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/4809528793334759720/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/open-frontdoor-using-bluetooth.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/4809528793334759720?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/4809528793334759720?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/vAeMu1I7DMM/open-frontdoor-using-bluetooth.html" title="Open front door using Bluetooth" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/open-frontdoor-using-bluetooth.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYHQXo8eCp7ImA9WxVQEkg.&quot;"><id>tag:blogger.com,1999:blog-7843152534286746009.post-1393772106002331920</id><published>2009-01-25T20:58:00.012+01:00</published><updated>2009-01-29T20:25:30.470+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T20:25:30.470+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="About" /><title>Introduction</title><content type="html">Welcome to the 10100111001est (that's 1337est in binary ;-)) blog in the world! You guessed it, it's a geek blog! The purpose of this blog is actually very simple: when I look on the internet, I see all kind of cool home projects and I wonder "how do they do that?!" (e.g. DIY multi touch table). There is only one thing to do for a nerd who asks that question to himself/herself: find the answer :-)&lt;br /&gt;&lt;br /&gt;This blog is about projects I do in my spare time and it will describe them in more detail than you would find on other sites. These are just a few examples of what you will be able to find here:&lt;br /&gt;- interface custom made Integrated Circuits to your PC,&lt;br /&gt;- how to build a multi touch table,&lt;br /&gt;- how I managed to open my front door, just by pressing a button on my phone (awesome!!),&lt;br /&gt;- MIDlet on my phone to remote control my media player,&lt;br /&gt;- fun things to do with a Wii Remote,&lt;br /&gt;- more!&lt;br /&gt;&lt;br /&gt;Ultimately, this blog will be a source for people like me who want to create cool things, but don't have a clue about where to start (like me most of the time) and it'll save them some time by looking at my experiences :-) Or better yet, inspire them to create even more mind-boggling projects!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7843152534286746009-1393772106002331920?l=blog.10100111001.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/10100111001/~4/eFWcOd7tWM8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.10100111001.com/feeds/1393772106002331920/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.10100111001.com/2009/01/introduction.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/1393772106002331920?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7843152534286746009/posts/default/1393772106002331920?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/10100111001/~3/eFWcOd7tWM8/introduction.html" title="Introduction" /><author><name>fellow geek</name><uri>http://www.blogger.com/profile/17159212920814598035</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.10100111001.com/2009/01/introduction.html</feedburner:origLink></entry></feed>

