<?xml version="1.0" ?><rss version="2.0"><channel><title>Techno Gumbo</title><link>http://www.technogumbo.com</link><description>Techno Gumbo.com RSS Feed</description><language>en-US</language><lastBuildDate>Wed, 10 Mar 10 13:12:50 -0500</lastBuildDate><image><title>Techno Gumbo</title><width>800</width><height>150</height><url>images/TGOHeadV2_Plain2.gif</url><link>http://www.technogumbo.com</link></image><webMaster>palen1c@gmail.com</webMaster><ttl>120</ttl><item><link>http://www.technogumbo.com/2010/02/New-Tutorial-About-Open-Source-Flash-Programming/</link>http://www.technogumbo.com/<title>New Tutorial About Open Source Flash Programming</title><pubDate>Fri, 26 Feb 2010 21:36:15 EST</pubDate><description>&lt;p&gt;&lt;img alt="New Tutorial About Open Source Flash" src="Classes/phpThumb/phpThumb.php?src=../../images/FlashTutorial022620101.jpg&amp;w=100"align="left" hspace="4" vspace="2" /&gt;I have just posted a new tutorial about how to get started programming Flash applications using open source methodology.  I start the tutorial explaining why you may or may not want to try open source Flash programming.  This is followed by an exhaustive list of definitions and acronyms.  I know these things are boring; but I tried to do my best to pack it jam full of the key concepts you will need to get started.  If you make it through the prerequisite minefield you will be rewarded with a step-by-step tutorial of setting up a development environment.  The grand finale of the tutorial is  a simple slide show application complete with 1920s era music.  If you are too lazy to read the entire tutorial you can just download the project at the bottom of the tutorial.  Head over to the tutorials and &lt;a href=&quot;http://www.technogumbo.com/tutorials/Open-Source-Flash-Programming-Tutorial/Open-Source-Flash-Programming-Tutorial.php&quot;&gt;learn to create Flash applications the open source way!&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2010/02/Why-Programmers-Working-on-NAT-Traversal-SIP-RTP-P2P-TURN-STUN-ICE-TLS-and-SSL-Should-Consider-XMPP/</link>http://www.technogumbo.com/<title>Why Programmers Working on NAT Traversal SIP RTP P2P TURN STUN ICE TLS and SSL Should Consider XMPP</title><pubDate>Fri, 19 Feb 2010 23:30:14 EST</pubDate><description>&lt;p&gt;&lt;img alt="XMPP communication from Java to Pidgin" src="Classes/phpThumb/phpThumb.php?src=../../images/XMPP02192010.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;If you look at the archives or my massive paper on robotic telepresence you&amp;#39;ll quickly find out that I have been thinking about ways to improve distance communication for quite some time.  Since I finished my &lt;a href=&quot;http://www.technogumbo.com/projects/Flash-Telepresence-RC-Car/index.php&quot;&gt;Flash based telepresence RC car&lt;/a&gt; I have been investigating modern real time video, voice, and multimedia transfer protocols at a low level.  I had originally thought that I might have to implement some of these protocols on my own with the help of generous open source libraries until I came across XMPP.&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="STUN settings in Openfire" src="Classes/phpThumb/phpThumb.php?src=../../images/XMPP02192010_STUN.jpg&amp;h=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Certificate settings in Openfire" src="Classes/phpThumb/phpThumb.php?src=../../images/XMPP02192010_Certificates.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Media relay settings in Openfire" src="Classes/phpThumb/phpThumb.php?src=../../images/XMPP02192010_Media.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2010/02/An-Old-Unsung-Technology-Hero/</link>http://www.technogumbo.com/<title>An Old Unsung Technology Hero</title><pubDate>Fri, 5 Feb 2010 21:21:14 EST</pubDate><description>&lt;p&gt;&lt;img alt="The messed up Technogumbo live link rss feed in firefox" src="Classes/phpThumb/phpThumb.php?src=../../images/UnsungTechnologyHero0205201.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;The more I use and become increasingly familiar with Java, the more I like it.  It is such a monstrous technology that it is very hard to pick up.  However, once you get familiar with the particulars it becomes an extremely lethal weapon.  I have recently been spending the majority of my spare time working on network programming with Java. From first hand experience, I think it is much easier to do socket programming in Java then my favorite .NET language, C Sharp.  Setting up a simple blocking-based socket server is trivial in Java.  The advanced features of the New IO structure are amazing for socket programming and any IO operations once you understand what they do.&lt;br/&gt;&lt;br/&gt;Technology media seems to neglect Sun Microsystems these days, but I have a great respect for the company.  Java is a wonderful programming language, especially on the server side.  Although I have to admit that it makes me a little uneasy to think that the core maintainer of a major programming language is one company.  The real reason that I think Sun deserves credit is &lt;a href=&quot;http://www.openoffice.org&quot;/&gt;Open Office&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;It makes me really uneasy that Sun is now in the hands of Oracle.  That also means that MySQL is a part of Oracle as well.  In the time that I have been aware of programming technology and the industry, I cant recall Sun behaving poorly as a corporate entity.  It seems like they have really adhered to their own &quot;Do No Evil&quot; paradigm.&lt;br/&gt;&lt;br/&gt;Maybe its time for me to get back to my C++ roots.&lt;br/&gt;&lt;br/&gt;On an off topic note.  I have switched totally to Firefox and realized that the Technogumbo rss feed does not display properly in Firefox or its live links. I think live links are really cool, so it is my prerogative to make sure the site will work with them.  I have modified all the headers on the site in order to incorporate the little firefox rss icon in your address bar as well.&lt;br/&gt;&lt;br/&gt;</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2010/01/The-Project-Goal-Black-Hole/</link>http://www.technogumbo.com/<title>The Project Goal Black Hole</title><pubDate>Fri, 29 Jan 2010 22:44:13 EST</pubDate><description>&lt;p&gt;&lt;img alt="The major goal note that I keep a close eye on." src="Classes/phpThumb/phpThumb.php?src=../../images/ProjectGoalBlackHole0129101.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;The flash based telepresence rc car project was one of the most ambitious things I have done in my spare time.  Consequently, it took nearly two years of nights and weekends to finish the project.  The time was definitely not wasted as it provided immense electrical engineering learning opportunities.  I have also gained a  greater respect then ever for clearly thinking about and defining a projects goals.&lt;br/&gt;&lt;br/&gt;While the telepresence rc car was meant to be an electrical engineering focused project, the current one I am working on is intended to be a programming project.  Unfortunately something always happens as you make original products in that they seem to give birth to sub projects.  This is especially true if you are like me; and are extremely nit picky about what happens behind the scenes to make the core technology work.  I could have finished the electrical engineering required for the telepresence RC car project simply by putting a servo controller in the car and I perhaps would have saved a year of time.&lt;br/&gt;&lt;br/&gt;I reluctantly had to add a core learning focus that I am not too excited about to my current major learning goals this round; which will probably add  one months time to this project.  My personal deadline for this one is June 1st 2010.&lt;br/&gt;&lt;br/&gt;The current major learning goals for this project are:&lt;br/&gt;&lt;br/&gt;&lt;b&gt;1. Master practical encryption techniques for secure multimedia files/streams.  Subsequently this also requires data integrity checking and re-transmission.&lt;br/&gt;2. Implement the art of automatically traversing firewalls and routers allowing me to make applications that dont requite network configuration.&lt;br/&gt;3. Learn how to safely implement sensors into more friendly materials.&lt;br/&gt;4. I am going to have to spend significant time making a really good user interface for this one.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;A moderate explanation of the first four points follows:&lt;br/&gt;&lt;br/&gt;1. We live in a world where our lives are becoming ever more public.  It is important when communicating under the assumption of privacy to actually ensure privacy.  How would each of us feel if our mail were open when we got it?  How would we feel if our semi-private messages to others on Facebook were suddenly made more public (Which happened with the Jan 4th 2010 privacy policy change)?  It feels creepy to think of other people spying on your personal affairs.  Its up to technology implementors of communication tools to implement them as properly as their laws allow them to.&lt;br/&gt;&lt;br/&gt;2. Average consumers have no clue what a firewall even does.  Most of the technology I work with requires some sort of router and firewall configuration that these people could never do.  Its imperative that network applications can take care of their own network configurations.&lt;br/&gt;&lt;br/&gt;3. Using communication technology normally means that you are using gobs of electronics housed in rigid plastic enclosures.  I want to try and go the opposite direction with this one and house it inside a pillow.  In doing research at JoAnn Fabrics; I am concerned about the flammability of the stuffing material I will be using.  I would feel terrible if one of my prototypes caught on fire inadvertently and caused a massive amount of damage.  I am going to have to figure out some how to ensure that even if it were to catch on fire that it would be self contained.  This leg of the project wont come until later in the game and could take a TON of work to figure out.&lt;br/&gt;&lt;br/&gt;4. This is the first of my huge projects that I am going to have to focus on user interface with.  In the past, others have done the interface, or I knew the project was targeted toward major engineers.  This one will be used by people that may not be as familiar with technology as I am.  My plan is to make four initial prototypes in two pairs, so out of the gate this one will be used by others.  I was bummed about having to add this one because its not something I planned on at all.&lt;br/&gt;&lt;br/&gt;The first pair is for my June 1st date.  The others wont take very long if the first pair works as planned.  As you can see, the more you expand on a project the more and more time you find it taking up.  As a wise passage that I read during my years in college said: &quot;one of the few things you cant get back in life is time&quot;.</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2010/01/Java-Network-And-Cryptography-Resources/</link>http://www.technogumbo.com/<title>Java Network And Cryptography Resources</title><pubDate>Fri, 22 Jan 2010 21:20:12 EST</pubDate><description>&lt;p&gt;&lt;img alt="Java Cryptography and TCP IP books" src="Classes/phpThumb/phpThumb.php?src=../../images/JavaNetworkCrypto0122101.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;I first taught myself Java in my senior year of college for the GPS navigation project I did for my final project in my undergraduate degree.  Since then I found a keen interest in the Red5 project which is developed entirely in Java.  Since starting with Red5, I have really come to appreciate Java after overcoming its immense learning curves and complexities.  I have always developed on Windows, but deployed on Linux.  The power of Java and the virtual machine allows this transition of code to happen in a matter of minutes instead of hours or days.  As the previous entry alludes, I have been tackling some challenges concerning encryption and socket based programming.  I am doing all of this in Java due to its portability, and I wanted to provide resources for beginners that I think may help a great deal.  It will help to explain what I am trying to do.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;I want to transfer encrypted multimedia files over sockets securely using the best encryption technology possible.  These encrypted file transfers must also incorporate features like data integrity checking and re-transfer if necessary.&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;If you are a slow, but curious learner like me; the absolute best thing you can do is get right into the code and get very confused.  You will quickly find that encryption doesn&#039;t seem to have a lot of documentation.  By far the absolute best resource I found starting out was the &lt;a href=&quot;http://www.aviransplace.com/2004/10/12/using-rsa-encryption-with-java/&quot;&gt;Avirans Place article on Assymetric encryption&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;After you get into the code a bit and are familiar with the terms, the Security Now podcasts will be without a doubt the best  resource you can find to explain in detail what you have just tried to implement.  The following are excellent resources:&lt;br/&gt;&lt;br/&gt;Security Now Ep 31 &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Symmetric Stream Ciphers&lt;/a&gt;&lt;br/&gt;Security Now Ep 33 &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Symmetric Block Ciphers&lt;/a&gt;&lt;br/&gt;Security Now Ep 34 &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Public Key Cryptography&lt;/a&gt;&lt;br/&gt;Security Now Ep 35 &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Cryptographic Hashes&lt;/a&gt;&lt;br/&gt;Security Now Ep 37 &lt;a href=&quot;http://www.grc.com/securitynow.htm&quot;&gt;Crypto Series Wrap-up&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;After listening to all of these you will have a firm understanding of what the heck is going on.&lt;br/&gt;&lt;br/&gt;I was having trouble with key sizes in Java and a lot of the socket examples I found online were using while loops instead of threads; which indicated to me that I needed some professional resources.  I ended up purchasing &quot;Beginning Cryptography with Java&quot; by David Hook and &quot;TCP/IP Sockets in Java&quot; by Kenneth L. Calvert and Michael J. Donahoo.  I have only read the intro and first chapters of both books so far.  With the crypto book I was able to pick up a few tricks right away.  The TCP/IP book proved less helpful in the opening entries.</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2010/01/NAT-Traversal-Techniques-For-Programming/</link>http://www.technogumbo.com/<title>NAT Traversal Techniques For Programming</title><pubDate>Sat, 2 Jan 2010 20:06:11 EST</pubDate><description>The focus of the majority of my spare time lately has been teaching myself about how to automatically traverse firewalls and consumer/professional routers utilizing programming techniques.  If you think about the potential of being able to eliminate the need for consumers to have knowledge of router configuration, you open up network and P2P based applications and hardware to a whole new audience of general consumers.  This is a pretty specialized area that has a major lack of good articles, so I wanted to provide a summary of my own research into the topic.&lt;br/&gt;&lt;br/&gt;I am approaching this topic from a programmers perspective; not an implementor.  There is a lot of information available about people setting up ALG&#039;s (Application Layer Gateways fix packets that NAT screws up for things like IP telephony), SIP phones and a whole bunch of other crap.  I want to know the guts from a network programming perspective at the TCP and UDP packet layer and not high level implementation information.  I want to implement NAT traversal techniques in a P2P type manner so that my custom fabricated devices can do things like transfer files to each-other or accept incoming connection requests on the fly.&lt;h3&gt;Why Group NAT Traversal and P2P Technologies Together?&lt;/h3&gt;Intelligent NAT traversal should be able to be done by clients themselves without the need of a central server.  That is my programming objective which is why I am looking at NAT traversal from a P2P perspective.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Background Reading on NAT Traversal, P2P, and Multimedia Protocols Before We Get Started&lt;/h3&gt;If you are just starting to learn about NAT traversal and P2P, some of this may not make sense until you get a better understanding.  I have prior experience doing TCP and UDP socket programming in Flash and C# .NET that does not have to traverse NAT.  The items I have read, am in the process of reading, or have seen prior to writing this are as follows:&lt;h2&gt;Great Introduction Video:&lt;/h2&gt;Yahoo! Director of Engineering &lt;a href=&quot;http://www.youtube.com/watch?v=9MWYw0fltr0&quot;&gt;explains STUN and TURN&lt;/a&gt;&lt;h2&gt;NAT Traversal Summary Articles and Papers:&lt;/h2&gt;&lt;a href=&quot;http://www.tml.tkk.fi/Publications/C/18/hu.pdf&quot;&gt;NAT Traversal Techniques and Peer-to-Peer Applications&lt;/a&gt; by Zhou Hu&lt;br/&gt;&lt;a href=&quot;http://www.brynosaurus.com/pub/net/p2pnat/&quot;&gt;Peer-to-Peer Communication Across Network Address Translators&lt;/a&gt; by Bryan Ford, Pyda Srisuresh, and Dan Kegel&lt;br/&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SOCKS&quot;&gt;Wikipedia Page on SOCKS&lt;/a&gt;&lt;br/&gt;&lt;h2&gt;P2P Summary Articles and Papers, thank gosh for Wikipedia:&lt;/h2&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Peer-to-peer&quot;&gt;Wikipedia Page on P2P&lt;/a&gt; (This actually has a good summary)&lt;br/&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Gnutella&quot;&gt;Wikipedia Page on Gnutella&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Gnutella2&quot;&gt;Wikipedia Page on Gnutella2&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/EDonkey_Network&quot;&gt;Wikipedia Page on eDonkey&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol&quot;&gt;Wikipedia Page on XMPP&lt;/a&gt;&lt;br/&gt;&lt;h2&gt;RFCs:&lt;/h2&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc3261&quot;&gt;SIP&lt;/a&gt; RFC 3261&lt;br/&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc3550&quot;&gt;RTP&lt;/a&gt; Updated RFC 3550&lt;br/&gt;&lt;a href=&quot;http://www.adobe.com/devnet/rtmp/&quot;&gt;RTMP&lt;/a&gt; Adobes lackluster document on it&lt;br/&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc4091&quot;&gt;ICE&lt;/a&gt; RFC 4091&lt;br/&gt;&lt;a href=&quot;http://tools.ietf.org/html/rfc5389&quot;&gt;STUN&lt;/a&gt; Updated RFC 5389&lt;br/&gt;&lt;a href=&quot;http://tools.ietf.org/html/draft-ietf-behave-turn-16&quot;&gt;TURN&lt;/a&gt; IET behave Draft 16&lt;br/&gt;&lt;h2&gt;Open Source Projects Code I Have Been Looking at:&lt;/h2&gt;&lt;a href=&quot;http://azureus.sourceforge.net/&quot;&gt;Vuze&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;http://shareaza.sourceforge.net/&quot;&gt;Shareaza&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;http://www.pidgin.im/&quot;&gt;Pidgin&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;https://jnushare.dev.java.net/&quot;&gt;Jnushare&lt;/a&gt; (I dont think its practical to use &lt;a href=&quot;https://jxta.dev.java.net/&quot;&gt;jxta&lt;/a&gt;, but was interested in checking out projects that used it.)&lt;br/&gt;&lt;a href=&quot;http://www.blog.jasonederle.com/?p=36&quot;&gt;Java NAT Traversal Made Simple&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;How do IM Clients Handle NAT?&lt;/h3&gt;If ICE,STUN, and TURN are the best options for NAT traversal, then how the heck have IM clients been traversing NAT since the early 1990s or earlier?  My guess is that IM clients have been either using SOCKS or another proxy type technique similar to TURN to be able to allow such good connectivity records in the past.  I may be wrong.&lt;br/&gt;&lt;br/&gt;I couldnt find anything helpful at all in the Pidgin source code.  I really couldn&#039;t even find anything about where they are handling network protocol.  When looking at what Wikipedia lists for each proprietary protocol; it really looks like IM generally works via proxy with XMPP being the only protocol that sort of starts to implement distributed methodology.  I think normal message transfer happens like this.&lt;br/&gt;1.You log into your IM server and keep a persistent outbound connection to it all the time.&lt;br/&gt;2.When you want to send or get a message it must go through that central server.&lt;br/&gt;3.Not too sure about transferring files.  It would make sense for the central server to setup hole punching between two clients, but I see no indication of this happening in the pidgin source code.  If it relays the file through the central server, then that is a pretty big strain on the central server.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Analysis of NAT Traversal in Vuze and Shareaza&lt;/h3&gt;Based on looking at the source code for Vuze and Shareaza I think they attempt to traverse NAT in the following way:&lt;br/&gt;&lt;br/&gt;Vuze:&lt;br/&gt;1. They use UPNP&lt;br/&gt;2. They also use NATPMP which must have just been someones pet project because there are so few routers that support it. (Its an alternate protocol to UPNP developed by Apple and mainly supported by their devices)&lt;br/&gt;3. I THINK that they establish outbound connections to the nearest DHT leaf node.  I think this outbound connection to the DHT node may coordinate UDP Hole punching for the final transfers.&lt;br/&gt;&lt;br/&gt;Shareaza:&lt;br/&gt;1. They are Win only, so they try and automatically add exceptions to the windows firewall&lt;br/&gt;2. They also implement UPNP&lt;br/&gt;3. I dont see any indication of hole punching or any other inbound connection connectivity attempts Did I miss something?&lt;br/&gt;&lt;h2&gt;Although Insecure From a Security Standpoint Take Advantage of UPNP&lt;/h2&gt;After doing a large sum of reading and looking at the source code from Azureus(Java), Sharaza(C/C++), Pidgin(C/C++), and a few other applications that I think would have to traverse NAT; it seems like there are a few common denominators.  First off, Azureus and Sharaza implement UPNP(Universal Plug and Play) libraries which I really think probably nails at lest 50% of generic user cases.  Despite UPNP &lt;a href=&quot;http://www.grc.com/unpnp/unpnp.htm&quot;&gt;being pretty dangerous from a security standpoint according to Steve Gibson,&lt;/a&gt; normal users have no clue about it and will have it enabled; so why not take advantage of it and alleviate the first or second firewall in the way of programming problems.&lt;br/&gt;&lt;br/&gt;Sharaza seems to take a different approach in trying to poke exceptions in the Windows firewall without prompting users about it (I think Sharaza is Windows only, so that makes a bit of sense.)  Check out in the trunk/shareaza Firewall.cpp file included in its source code.&lt;br/&gt;&lt;br/&gt;This is an area that I like because it is a tricky programming problem with no single implementation of NAT traversal that will work for all given situations.  From a programmers perspective the only way to guarantee connectivity is to implement as many possible NAT traversal techniques as you can.&lt;br/&gt;&lt;br/&gt;Despite most of the documentation you will find online being geared towards IP telephony; my personal belief based on research is that ICE, STUN, and TURN are the current best techniques for NAT traversal.  These protocols are relatively new with origination dates in the 2000&#039;s.&lt;br/&gt;&lt;br/&gt;With ICE, STUN, and TURN you need to have a server with a public IP address running &quot;server&quot; implementations of these protocols.  So far I have played around with the &lt;a href=&quot;http://sourceforge.net/projects/stun/&quot;&gt;Vovidia c++ based Windows STUN server&lt;/a&gt; with lackluster results.  To support backwards compatibility I think you must have two network interface cards on your server with two public IP&#039;s.  The downside of the Vovidia implementation is that I cant figure out how to successfully use the same interface card with two different ports to run the server!&lt;br/&gt;&lt;br/&gt;For my client STUN requests I have been using a Java application that uses Jason Derle&#039;s Stun4J wrapper.  It would be pretty cool if you could use p2p clients on the public internet to act as STUN and TURN servers along the paradigim that Skype uses with it&#039;s &quot;Super nodes&quot;.&lt;br/&gt;&lt;br/&gt;Thats all I have for now.</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/12/Catch-up-From-the-Holidays/</link>http://www.technogumbo.com/<title>Catch up From the Holidays</title><pubDate>Mon, 28 Dec 2009 12:56:10 EST</pubDate><description>&lt;p&gt;&lt;img alt="A battle in Cave Story." src="Classes/phpThumb/phpThumb.php?src=../../images/CaveStory1228091.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;Something that can always be counted on toward the end of the year is an almost complete halt of my own research projects that I do in my spare time.  I am really thankful that I was able to finish the RC Car project before finishing up the National Museum of the Pacific War and returning home for the holidays.  The lack of posts on this site are because I have not been doing much of my own research during the last month.  I got to spend ten days at home with my family; which was a much needed break.  I am really thankful that my holiday plane rides were uneventful and on time this year.&lt;br/&gt;&lt;br/&gt;When I flew home last night, going from Cleveland to Providence there was no cloud cover and I could actually see all the lights of the cities as we flew over them.  Its really miraculous to fly over the U.S. at night and see so many lights.  I cant imagine how many total Amps are being consumed at any one time when considering automobiles as well.  My pilot on that flight was a bank happy guy.  It was good that I am no longer a nervous passenger because he was banking so much on purpose I am sure it made some of the other people on the plane nervous.&lt;br/&gt;&lt;br/&gt;While I was home; I introduced my little sister to a &lt;a href=&quot;http://en.wikipedia.org/wiki/Cave_Story&quot;&gt;free PC game called Cave Story&lt;/a&gt; that I discovered a few months ago.  Apparently it was created by Daisuke Amaya over the course of five years.  To think that a single person did the programming, art, writing, and music for this game is insane.  It has some of the best music I have heard in a long time, multiple endings, and tons of secrets.  He did an extremely good job.  You can get an English patch for the game if you look around.&lt;br/&gt;&lt;br/&gt;I am excited to get back to the usual routine after a nice vacation.</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2009/12/The-National-Museum-of-the-Pacific-War-Now-Open/</link>http://www.technogumbo.com/<title>The National Museum of the Pacific War Now Open</title><pubDate>Wed, 09 Dec 2009 22:47:09 EST</pubDate><description>&lt;p&gt;&lt;img alt="Entrance for Peleliu at the National Museum of the Pacific War." src="Classes/phpThumb/phpThumb.php?src=../../images/NMPWNowOpen1209091.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;I spent the last week in Fredericksburg, Texas working on the National Museum of the Pacific War.  It was opened to the public on December 7th, Pearl Harbor day.  Myself and my colleges at Boston Productions have been working on many of the media and interactive exhibits in the museum.  I primarily spent my time on a set of kiosks that allow several battles of the Pacific War to be drilled down into.  The kiosks let you look at items such as the: Background, Battle Timeline, Maps, Commanders and Forces, photos and video for each battle.  The total scripts for all the battles combined were something like 800 pages.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="The kiosk for Tarawa by a Japanese flack cannon." src="Classes/phpThumb/phpThumb.php?src=../../images/NMPWNowOpen1209092.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/11/Ubuntu-9-10-Actually-Runs-on-the-Eeepc-701-Decently/</link>http://www.technogumbo.com/<title>Ubuntu 9 10 Actually Runs on the Eeepc 701 Decently</title><pubDate>Fri, 20 Nov 2009 22:46:08 EST</pubDate><description>&lt;p&gt;&lt;img alt="Ubuntu 9.10 on the eeepc 701" src="Classes/phpThumb/phpThumb.php?src=../../images/Ubuntu910NBRWow112020091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;It must have something to do with the similar version numbers, but Ubuntu 9.10 Notebook Remix (NBR) actually runs on the Eeepc 701.  I got impatient waiting for the Ubuntu variants to release their 9.10 versions and installed the official release last week after hearing reports that it was much improved over 9.04 on the platform.  The 9.04 notebook remix had problems even moving the mouse cursor with decent performance on the 701.  It seems to be common knowledge on various forums that the 9.04 suffered from wireless packet loss and random disconnect issues which I can vouch for, especially with Atheros based chipsets.  I could stream video no problem on a wired connection, but had terrible problems on wireless in 9.04.  The only issue I have so far with 9.10 is that I haven&#039;t been able to easily figure out how to open system folders as root so that I can modify them unless using the command line.&lt;br/&gt;&lt;br/&gt;I was able to get my Red5 setup working on the 701 this evening and the wireless issues are fixed on the 701 in 9.10!  The live video stream was hauling to and from the client connection I had set up just like it does on my Windows machines.</description><category>Technology</category></item><item><link>http://www.technogumbo.com/2009/11/New-Projects-Involving-Hardware-and-Network-Programming/</link>http://www.technogumbo.com/<title>New Projects Involving Hardware and Network Programming</title><pubDate>Sat, 14 Nov 2009 4:08:07 EST</pubDate><description>&lt;p&gt;&lt;img alt="A teensy and some force sensors on a hand sewn pillow" src="Classes/phpThumb/phpThumb.php?src=../../images/NewProjectsNov20091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;Since I graduated from college, my independent work has been focused on learning techniques for unique distance communication.  I knew long before I graduated college that in order to work at a fun job, I would have to move away from my family.  My family lives in the middle of nowhere in a rural farming community in Michigan.  They currently utilize EV-DO for an Internet connection which proves to be sporadic because they are on the edge of the coverage map.  This hardware and software is directly targeted at their situation.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;About the Network Programming&lt;/h3&gt;During the development of my flash controlled RC car and custom hardware for it, (the RC Interceptor) over the past year I have been sitting on several ideas that I wanted to work on.  Now that I am just waiting for Crunchbang Linux to release their version of Ubuntu 9.10 to demonstrate the car, I have been able to move on to other exciting projects.&lt;br/&gt;&lt;br/&gt;I have decided that my next major learning endeavor is to further my education in network programming.  Last year at work I got to do some socket communication programming between Flash and a C# application that allows several mice to be used at once.  This is implemented in the &lt;a href=&quot;http://backroom.bostonproductions.com/?page_id=163&quot;&gt;Hershey Story Explore Hershey map table&lt;/a&gt;.  It allows four mice to be uniquely used at once with a single Flash application.&lt;br/&gt;&lt;br/&gt;I am excited to learn how peer-to-peer applications punch holes through firewalls in order to allow communication between two clients without bogging down a central server.  In the papers I have read thus far, it looks like there is no central way to do this.  The trick seems to be that you have to try several different methods of communication until you find one that works.  Even more cool is that in using these techniques you have to authenticate your connections because they might mistakenly connect to incorrect hosts.  You also have to obfuscate your traffic because apparently certain firewalls/routers will inspect packets leaving them and alter the contents if they include plain text IP addresses and ports.&lt;br/&gt;&lt;br/&gt;I have found two excellent papers outlining the methods involved in NAT traversal techniques.  For a great overview the paper &lt;a href=&quot;1.www.tml.tkk.fi/Publications/C/18/hu.pdf&quot;&gt;&quot;NAT Traversal Techniques and Peer-to-Peer Applications&quot;&lt;/a&gt; by Zhou Hu is a great read.  It seems like the most widely successfully technique is UDP/TCP hole punching, so the second paper, focused on that topic is: &lt;a href=&quot;http://www.brynosaurus.com/pub/net/p2pnat/&quot;&gt; &quot;Peer-toPeer Communication Across Network Address Translators&quot;&lt;/a&gt; by Bryan Ford, Pyda Srisuresh, and Dan Kegel.&lt;br/&gt;&lt;br/&gt;I am planning to use Java in order to implement these techniques, so another great practical resource has been the source code of the popular &lt;a href=&quot;http://sourceforge.net/projects/azureus/&quot;&gt;bittorrent application Azureus/Vuze&lt;/a&gt;.  By looking through that I have learned about &lt;a href=&quot;http://files.dns-sd.org/draft-cheshire-nat-pmp.txt&quot;&gt;NATPMP&lt;/a&gt;, and the unrelated but cool concept of &lt;a href=&quot;http://magnet-uri.sourceforge.net/magnet-draft-overview.txt&quot;&gt;MagnetURI&lt;/a&gt; so far.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;About the New Hardware&lt;/h3&gt;The hardware component of this project involves a pretty easy sensor/microcontroller/USB device combo.  Its basically a pillow with force sensors shoved inside of it.  I spent the last week sewing the pillow together as well as the zipper and internal pockets for holding the micro-controller board and sensors in place.  When speaking to the people at Jo-Ann fabrics I learned that in order to get non-flammable stuffing it is hard to come by and quite expensive.  I will be using dangerous cheap stuffing which is probably pretty flammable.  For that reason I am going to attempt to place the micro-controller in an air-tight plastic enclosure.  I have decided to go the quick route and use a &lt;a href=&quot;http://www.pjrc.com&quot;&gt;teensy&lt;/a&gt; for the initial prototype as this is more of a software then hardware project unlike the RC Interceptor.&lt;br/&gt;&lt;br/&gt;In deciding what sensors to use, I came across a fun paper called &quot;Squeeze Me: A Portable Biofeedback Device for Children&quot; by Amy Parness, Ed Guttman, and Christine Brumback.  They created a device from Dragon Skin Silicone that children can use to assist in rehabilitation from injury.  I settled on pressure based resistors.  Time will tell how well they work out.</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/11/The-RC-Interceptor-is-Finished/</link>http://www.technogumbo.com/<title>The RC Interceptor is Finished</title><pubDate>Sun, 1 Nov 2009 3:04:06 EST</pubDate><description>I dont think it was as long running as The College Project, but after more then a year, I have completed work on what I originally called the &amp;quot;Inline PWM Board&amp;quot; and now call the RC Interceptor.  I have posted a pretty in depth writeup of the lineage of the project and its current state in the Projects section.&lt;br/&gt;&lt;br/&gt;This is only a small component of another project I have been working on.  Currently I have decided to place that on hold after a lot of testing.  The holdup is the reliability of Atheros wifi card drivers under Ubuntu 9.04 on Crunchbang.  The wireless transmission is producing too much delay regardless of what I do.  Due to the portability of java and flash, I can run the exact same code under my dumpy old Windows laptop using the prisim chipset in a PCMCIA wifi card with no issue.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/10/RXTX-Ubuntu-ttyACM-Devices-Not-Working/</link>http://www.technogumbo.com/<title>RXTX Ubuntu ttyACM Devices Not Working</title><pubDate>Mon, 18 Oct 2009 21:03:05 EST</pubDate><description>I have been using RXTX with Java for quite a long time.  It was the component I used for my senior research project in college and I have used it with may other projects demonstrated on this website.I have used it since the beginning of my exploits in trying to use Flash for real time control of hardware.  However in trying to finish the RC Interceptor I have found a few heart wrenching bugs in RXTX.The first major bug is that in all versions it doesnt work with ACM named devices.  If you follow most of the general advice by arduino people having trouble with rxtx on Ubuntu they say to compilethe newest version and use that.  This wont work if you have a device like mine with a name like ttyACM0.&lt;br/&gt;&lt;br/&gt;The RC Interceptor is a USB to rs232 device but shows up in an Ubuntu 9.04 system  as ttyACM0.  In order to make rxtx2.2pre2 recognize this device I had to download the source, and modify RXTXCommDriver.java  around line 500 to add a prefix of ACM to the allowed prefixes for Linux type serial ports.  I then had to compile and install the rxtx 2.2pre2 driver myself.  Oh, you also have to crazily use the configure option &amp;#45;&amp;#45;disable&amp;#45;PRINTER or make will fail.  I hope this helps someone.  I appreciate RXTX, but it caused me some gut wrenching pain and deadline missing this weekend which I am not happy about.  I guess the motto in software is just like those lame NBC the more you know public announcements.&lt;br/&gt;&lt;br/&gt;</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/10/Fixing-PNP-Transistor-Capacitance-Issues/</link>http://www.technogumbo.com/<title>Fixing PNP Transistor Capacitance Issues</title><pubDate>Sun, 11 Oct 2009 21:55:04 EST</pubDate><description>&lt;p&gt;&lt;img alt="A 50Hz waveform in need of fixing.  There should be no downward slope." src="Classes/phpThumb/phpThumb.php?src=../../images/FixingPNP1011092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;The RC Interceptor project has been ridden with numerous errors based on concepts of electrical engineering that I just dont know about because I have no formal electrical engineering training.  The latest fiasco in need of fixing has been what I believe to be the issue of transistor or output stage capacitance.  The RC Interceptor uses two PNP Bipolar Junction Transistors (BJT) in order to squelch or kill the RC controllers pulse width modulation waveform whenever the circuit is attached to USB.  The way it works is that when no USB connection is present, the RC Interceptor must pass this RC controller signal straight through to the motor and steering servo.  Whenever USB is hooked up, the circuit must stop completely whatever is coming from the RC controller and only send what is coming from the USB circuit.&lt;br/&gt;&lt;br/&gt;The first issue in the initial design of this circuit is that the RC Controller signal was not being killed all the way.  So whenever USB was connected, you would have the RC Controller signal and USB signal interfering with each other.  This was simply an issue of not reading the PNP transistor datasheet correctly.  I made the circuit based on saturation parameters NOT start of turn on parameters.  Saturation is when a transistor is pretty close to all the way on.  However, when it starts to turn on, some of the signal will slip through the collector and emitter.&lt;br/&gt;&lt;br/&gt;In a PNP transistor, the way I fixed this was by adding a much larger resistor in series with the base of the device in relation to ground.  This limits the current that can get to the transistor.&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="The original 50Hz waveform that drops off immediately.  Output should look very close to this." src="Classes/phpThumb/phpThumb.php?src=../../images/FixingPNP1011091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/10/How-to-Make-an-Electromagnetic-Field-Detector/</link>http://www.technogumbo.com/<title>How to Make an Electromagnetic Field Detector</title><pubDate>Sat, 03 Oct 2009 01:04:03 EST</pubDate><description>&lt;p&gt;&lt;img alt="An EMF loop around the V1 RC Interceptor" src="Classes/phpThumb/phpThumb.php?src=../../images/MagneticFieldDetect1003093.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;In order to solve the mysterious problems with the RC Interceptor I purchased and have been reading the book &quot;High-Speed Digital Design A Handbook of Black Magic&quot; by Howard Johnson and Martin Graham.  Based on my current knowledge of electrical engineering, this book is just what I need in order to advance my understanding even further.  In this book they describe how to make a very cool electromagnetic field detector which I feel is worth writing about.  &lt;br/&gt;&lt;br/&gt;You can take an oscilloscope and connect its ground directly to the end of the probe tip.  When you do this, you can take the loop and place things inside of it that you want to measure EMF output from.  You also have to turn the voltage setting very low in order to see the EMF on the oscilloscope.&lt;p&gt;&lt;img alt="EMF output from the RC Interceptor" src="Classes/phpThumb/phpThumb.php?src=../../images/MagneticFieldDetect1003092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="The EMF output from the Teensy development board" src="Classes/phpThumb/phpThumb.php?src=../../images/MagneticFieldDetect1003091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/09/AT90USB162-Using-Atmel-Factory-DFU-Bootloader/</link>http://www.technogumbo.com/<title>AT90USB162 Using Atmel Factory DFU Bootloader</title><pubDate>Sat, 19 Sep 2009 22:00:02 EST</pubDate><description>&lt;p&gt;&lt;img alt="Hand made version of the RC Interceptor" src="Classes/phpThumb/phpThumb.php?src=../../images/AT90USB162-DFU0919091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;In order to use the factory loaded USB DFU bootloader for the Atmel AT90USB162 you MUST run the chip at 8Mhz from an external clock source.  In my hand made version of the RC Interceptor I made the mistake of trying to use an external 16Mhz clock.  This wont work.  If you look at the datasheet for the AT90USB162, you can clearly see that the fuse bits are set for an external clock running at 8Mhz.  Using the boards I had made by &lt;a href=&quot;http://www.batchpcb.com/&quot;&gt;BatchBCB&lt;/a&gt;, using an external 8Mhz clock, I have been able to boot the chip using the HWB pin with RESET in order to get the Atmel DFU bootloader to run.  This will allow you to use the Atmel FLIP programmer to program the chip via usb without changing any fuse bits.  This is critical if you want to load code without making an interface on your board for SIP programming.&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="16Mhz Waveform from the teensy pjrc board" src="Classes/phpThumb/phpThumb.php?src=../../images/AT90USB162-DFU0919092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="8Mhz Waveform from the RC Interceptor circuit board" src="Classes/phpThumb/phpThumb.php?src=../../images/AT90USB162-DFU0919093.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Another scrapped version of the RC Interceptor" src="Classes/phpThumb/phpThumb.php?src=../../images/AT90USB162-DFU0919094.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/09/Source-Code-For-Flash-and-Red5-Surveillance-System/</link>http://www.technogumbo.com/<title>Source Code For Flash and Red5 Surveillance System</title><pubDate>Fri, 4 Sep 2009 17:46:01 EST</pubDate><description>It seems that people like my concept of a motion sensing flash surveillance system.  The most requested topic that people contact me about is the source code for that project.  Thanks to the help of my little sister, Morgan who sent me the source code directly from the old Linux machine; I have now posted it on the project page.  I have to warn you that the code isnt easy to understand.  If you want to implement it, you will have to do some work.  I produced it as a demo and solution to a problem my dad was having, not a commercial, easy to use product.  You can get the flex project and Red5 java code on the &lt;a href=&quot;projects/flex-red5-surveillance-system/flex-red5-surveillance-system.php&quot;&gt;Flex and Red5 Surveillance System project page&lt;/a&gt;.</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/08/New-Tutorial-on-Network-Simulation/</link>http://www.technogumbo.com/<title>New Tutorial on Network Simulation</title><pubDate>Mon, 24 Aug 2009 19:00:00 EST</pubDate><description>There is a new tutorial that I posted yesterday that describes how to simulate different types of network conditions for application or hardware testing.This is extremely useful for anyone involved in developing for the web, doing video streaming, or possibly Online game development.  You can check it out in the &lt;a href=&quot;/tutorials&quot;&gt;tutorials section&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;</description><category>Programming</category></item><item><link>http://www.technogumbo.com/2009/08/Favorite-Electronic-Tools/</link>http://www.technogumbo.com/<title>Favorite Electronic Tools</title><pubDate>Fri, 21 Aug 2009 21:02:00 EST</pubDate><description>&lt;p&gt;&lt;img alt="A BK tools multimeter" src="Classes/phpThumb/phpThumb.php?src=../../images/FavoriteTools082120095.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;There are a few tools that I have been using over the last year while learning more and more about electronics that I would never want to give up.I figured it would be fun to feature my favorite and most useful tools that I use while working on electronics.&lt;br/&gt;&lt;br/&gt;#5 - BK Tools Multimeter&lt;br/&gt;&lt;p&gt;When I first started out I used a cheap $15 RadioShack(The Shack) multimeter.  This worked fine while just fooling with the basics.Once that broke I got extremely frustrated and decided I needed a good multimeter.  The BK Tool Kit 2704B has been a wonderful mid priced meter that I have used at work and inall my electronic projects.  This baby even came out to Buffalo with me and was a critical tool in assembly of the &lt;a href=&quot;http://backroom.bostonproductions.com/?page_id=79&quot;&gt;Captain of Industry&lt;/a&gt;.&lt;/p&gt;#4 - De-Soldering Braid&lt;br/&gt;&lt;p&gt;&lt;img alt="Radio Shack De-Soldering Braid" src="Classes/phpThumb/phpThumb.php?src=../../images/FavoriteTools082120094.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Radio Shack De-Soldering Braid" src="Classes/phpThumb/phpThumb.php?src=../../images/FavoriteTools082120093.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Water soluble Kester Flux pen with that unmistakable florecent yellow cap" src="Classes/phpThumb/phpThumb.php?src=../../images/FavoriteTools082120092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="The Leatherman Squirt is a must have" src="Classes/phpThumb/phpThumb.php?src=../../images/FavoriteTools082120091.jpg&amp;w=200"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/08/Crunchbang-Linux-a-Lean-Eeepc-701-Operating-System/</link>http://www.technogumbo.com/<title>Crunchbang Linux a Lean Eeepc 701 Operating System</title><pubDate>Sun, 16 Aug 2009 10:12:00 EST</pubDate><description>&lt;p&gt;&lt;img alt="The lean desktop of Crunchbang Linux" src="Classes/phpThumb/phpThumb.php?src=../../images/CrunchBangLinux081620091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I have had a white eeepc 701 for almost a year now.  Its a 4 gig solid state hard drive version and I put 1gig of ram in it.  There has recently been a real problem withfinding an operating system that will run decently on it.  Im happy to report that Crunchbang Linux works wonderfully on the 701! When I first purchased the computer I couldnteven figure out how to access the terminal in the default Asus Xandros variant, so I put Ubuntueee on it, which was wonderful.  I made the mistake of updating to a newer versionof Ubuntueee which has turned into EasyPeasy..which I dont like at all.  I also tried to put the latest version of the official Ubuntu netbook version on the 701 and it barely runs!It runs so slow that the mouse cursor cant even run at full speed.&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="Crunchbang Linux righ click menu and folder" src="Classes/phpThumb/phpThumb.php?src=../../images/CrunchBangLinux081620092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Technology</category></item><item><link>http://www.technogumbo.com/2009/08/Mistakes-in-Hand-Circuit-Board-Fabrication/</link>http://www.technogumbo.com/<title>Mistakes in Hand Circuit Board Fabrication</title><pubDate>Mon, 03 Aug 2009 07:00:00 EST</pubDate><description>&lt;p&gt;&lt;img alt="Double sided hand made circuit boards a little larger then a quarter" src="Classes/phpThumb/phpThumb.php?src=../../images/CircuitBoardMistakes0803090.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;The tough part about making a circuit board with surface mount technology is that there isnt much room for error in any part of the process.  In working with the AT90USB162, I have beenmaking a concept product for RC systems that incorporates the smallest electronic packages I have ever used.  The boards are also double sided which means both sides must be in perfect alignment.This is the first time I have used vias as well.  I hand make boards using the toner transfer method with an iron and etch them myself, then hand drill all the pin holes and vias.&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="Look closely and you can see all the scarring in the silicone where I had to separate the traces with a knife" src="Classes/phpThumb/phpThumb.php?src=../../images/CircuitBoardMistakes0803091.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="The assembled board.  Note the left where there is solder up on the surface mount clock source and the arch looking jumper wire" src="Classes/phpThumb/phpThumb.php?src=../../images/CircuitBoardMistakes0803092.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="I underlined in red the portion that says pins 2 and 4 are connected to the metalic cover of the clock source" src="Classes/phpThumb/phpThumb.php?src=../../images/CircuitBoardMistakes0803093.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/07/Picking-a-Working-Microcontroller-Clock-Source/</link>http://www.technogumbo.com/<title>Picking a Working Microcontroller Clock Source</title><pubDate>Sat, 25 Jul 2009 07:30:00 EST</pubDate><description>I recently ordered a batch of parts from Digikey for a circuit board I am working on using the AT90USB162.  In my past experiences with the Atmega 8, I simply copied many other peoplesdesigns and got a similar clock source hoping it would work.  I never really understood the differences between the different types of clock sources such as a crystals, resonators, andoscillators.  When trying to search for a basic tutorial on clock source concepts all I managed to find was a big pile of trash geared towards highly experienced electrical engineers.Right toward the end of picking a clock source I came across exactly what I was looking for at the &lt;a href=&quot;http://www.societyofrobots.com/microcontroller_xtal.shtml&quot;&gt;Society of Robots called &quot;How to use Crystals on Your Microcontroller&quot;.&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Prior to reading that information I couldnt find anything explaining what the Load Capacitance rating actually meant and how it translated to performance.  From what I understand, the lower the loadcapacitance; the more susceptible your circuit will be to other forms of EMI.  On certain clock sources your actually supposed to include two capacitors that match the load capacitanceof the source....oops.  I had not been doing that in the past.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/07/Controlling-Servos-With-the-AT90USB162-or-Teensy/</link>http://www.technogumbo.com/<title>Controlling Servos With the AT90USB162 or Teensy</title><pubDate>Mon, 13 Jul 2009 07:32:10 EST</pubDate><description>&lt;p&gt;&lt;img alt="The Teensy board with an AT90USB162 controlling a servo" src="Classes/phpThumb/phpThumb.php?src=../../images/AT90USB162Servos0713091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I have been in the process of replacing the use of the old Atmega 8s in combination with an FTDI RS232RL for an all in one AT90USB162.I want to use the AT90USB162 for controlling servos and electronic speed controls.  Instead of making my own breakout board, I recently picked up a Teensy from PJRC.I spent the weekend trying to figure out how to get computer controllable PWM signals to my old Futaba servo.  I first started out trying to use the 8bit counter buteventually realized there is no way to generate the correct PWM signal on a 16Mhz AT90USB162 using the 8bit counter.&lt;br/&gt;&lt;br/&gt;Let me elaborate.  For controlling a servo, you must generate at PWM signal at 50Hz (50 times a second).  You may have seen people talking about this as 20 milliseconds.You get 20ms by taking the 1000ms in one second and dividing by 50...get it?  So in order to control the position of a servo you need your pulse width signal to be on for only 1 to 2msof your full 20ms cycle.&lt;br/&gt;&lt;br/&gt;From my understanding, if you look at the 8bit counter on the AT90USB162, you can only use 0xFF(decimal 255) or the OCR0A register for the TOP of the counter which also has a max value of 255.The formula for calculating the frequency of Fast PWM mode for the 8bit counter is as follows:&lt;br/&gt;Frequency = Clock Speed / Prescaler * 256.&lt;br/&gt;The Teensy has a fixed Clock speed of 16Mhz or 16,000,000.  The highest Prescaler you can use is 1024.  So, if we use the max prescaler...&lt;br/&gt;16,000,000/ (1024 * 256) = about 61.03Hz.&lt;br/&gt;You can get lower using PWM Phase Correct mode, but never hit 50Hz exact at a fixed 16Mhz clock speed; so the 8bit timer can not be used for controlling a servo!&lt;br/&gt;&lt;br/&gt;I set up the 16bit counter to actually work for 50Hz so let me show you the settings I used below.&lt;br/&gt;For the 16bit Counter/Timer (Im having it output on pin 23 or PC6) you can make TOP the value equal to the ICR1 register which is key.You can then cycle the on and off duration by changing the value of the OCR1A register.  So the formula in the 16bit counter for setting PWM frequency in fast PWM mode is as follows(datasheet page 122).&lt;br/&gt;&lt;br/&gt;Frequency = Clock Speed / Prescaler * (1 + TOP)&lt;br/&gt;&lt;br/&gt;Lets plug in our values needed to get close to 50Hz.  16,000,000 / 8 * (1 + 40,000)&lt;br/&gt;&lt;br/&gt;So Prescaler = 8, TOP = 40,000.&lt;br/&gt;&lt;br/&gt;This actually works.  If you vary the value of OCR1A between 2200 to 3800 youll get pretty close to the 1 to 2ms on time for the 20ms period in order to control the full range of the servo.My exact register settings for the C programming language using the AVRlibC library are below.  I have the timer set to CLEAR on compare match, SET at TOP.&lt;div class=&quot;CodeExample&quot;&gt;&lt;br/&gt;// Added by CDP 7/13/2009&lt;br/&gt;// Cant use the 8 bit timer at 16Mhz to ever get a 50Hz PWM signal like a servo requires!&lt;br/&gt;void pwm_init_two(void) {&lt;br/&gt;	// FAST PWM Mode 14&lt;br/&gt;	// Using Channel A on PC6 set COM1A1  --&gt; Clear OCnA/OCnB/OCnC on compare match,set OCnA/OCnB/OCnC at TOP&lt;br/&gt;&lt;br/&gt;    TCCR1A = (1 &lt;&lt; COM1A1) | (1 &lt;&lt; WGM11);&lt;br/&gt;	// WGM11, WGM12 and WGM13 set PWM output mode 14 so ICR1 is top&lt;br/&gt;&lt;br/&gt;	TCCR1B = (1 &lt;&lt; WGM12) | (1 &lt;&lt; WGM13) | (1 &lt;&lt; CS11);  // &lt;--- Prescaling by 8&lt;br/&gt;	// WGMn Bits must be set before ICR1&lt;br/&gt;	// Using ICR1 as TOP For 50Hz Output at max resolution set at 40,000&lt;br/&gt;	// 16,000,000 / 8 * 40001 = ~50hz&lt;br/&gt;&lt;br/&gt;	ICR1 = 40000;&lt;br/&gt;	// Setup PWM prior to setting the data direction&lt;br/&gt;	// Setup the pwm output pin an output - because only doing one just set the bit value&lt;br/&gt;	// Use OR in case other bits have been set in DDRB&lt;br/&gt;&lt;br/&gt;	DDRC |= (1 &lt;&lt; PWM_OUTPUT_PIN);&lt;br/&gt;	// Set B4 as ouput so I can toggle it as output&lt;br/&gt;&lt;br/&gt;	DDRB |= (1 &lt;&lt; PB4);&lt;br/&gt;	// Set OCRA1 to something - Servo is based on 1 - 2ms pulse if 40000 = 20ms pulse whats between 1 and 2 (2200 TO 3800)&lt;br/&gt;&lt;br/&gt;	OCR1A = 3400;&lt;br/&gt;}&lt;/div&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/07/Comparing-Old-and-New-RC-Technology/</link>http://www.technogumbo.com/<title>Comparing Old and New RC Technology</title><pubDate>Fri, 03 Jul 2009 23:18:16 EST</pubDate><description>&lt;p&gt;&lt;img alt="An old and new rc car esc side by side" src="Classes/phpThumb/phpThumb.php?src=../../images/OldNewRCTech070320091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I have really put my old RC car through a lot while teaching myself electrical engineering.  The servo and electronic speed control have been the most useful components Ihave had to experiment with.  I also have used the old 7.2V Nicad battery extensively for powering breadboards and prototype projects.  I realized before I left for Buffalo tofinish up the &lt;a href=&quot;http://backroom.bostonproductions.com/?p=175&quot;&gt;Theodore Roosevelt Inaugural Site&lt;/a&gt; that the battery had gone bad and I also accidentally broke the old Futaba electronic speed control.&lt;br/&gt;&lt;br/&gt;Today I drove down to Foxboro to &lt;a href=&quot;http://www.rchover.com&quot;&gt;rchover.com&#039;s&lt;/a&gt; storefront location and picked up a new electronic speed control and battery.  RC technology has changed drastically in the last 20 years just like computer technology.In the side by side image of the two electronic speed controllers, the old Futaba is the large black box.  It has forward and reverse, but requires you to turn two littleadjustment knobs in order to nail the forward and reverse.  Electrically speaking, you&#039;ll notice a big black heatsink on the top.  Underneath that, there are nine MOSFETS setup in aH-bridge configuration in order to allow for forward and reverse control of the motor.  If you look at the new speed controller I just got, a LRP AI Runner, its about a quarter of thesize with many more features.  The LRP requires no adjustment and is waterproof.  Electrically, it only has 4 MOSFTETS too (the minimum to make a full forward reverse hbridge).&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;img alt="A 7.2V NiCad and NiMh battery side by side" src="Classes/phpThumb/phpThumb.php?src=../../images/OldNewRCTech070320092.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="The Real Player audio application on the Zire 71" src="Classes/phpThumb/phpThumb.php?src=../../images/OldNewRCTech070320093.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/06/The-True-Ancestor-of-the-Palm-Pre/</link>http://www.technogumbo.com/<title>The True Ancestor of the Palm Pre</title><pubDate>Thur, 04 Jun 2009 05:13:16 EST</pubDate><description>&lt;p&gt;&lt;img alt="Palm Zire 71 with blue and metalic shell" src="Classes/phpThumb/phpThumb.php?src=../../images/PalmZire71Profile0604091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;In just a few short days the Palm Pre is going to be released in the United States.  Im very excited about this because I have been a major Palm fan ever since I got a Palm Zire 71 back in 2003.&lt;p&gt;&lt;img alt="Palm Zire 71 with camerea slid open" src="Classes/phpThumb/phpThumb.php?src=../../images/PalmZire71Profile0604092.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="The Real Player audio application on the Zire 71" src="Classes/phpThumb/phpThumb.php?src=../../images/PalmZire71Profile0604094.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Palm Zire 71 back side with camera slid open.  Look at that nice metal." src="Classes/phpThumb/phpThumb.php?src=../../images/PalmZire71Profile0604093.jpg&amp;w=150"align="right" hspace="4" vspace="2" /&gt;&lt;p&gt;&lt;img alt="Calendar application and SD Card slot on the Zire 71" src="Classes/phpThumb/phpThumb.php?src=../../images/PalmZire71Profile0604095.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Technology</category></item><item><link>http://www.technogumbo.com/2009/05/Security-Now-and-New-Museum/</link>http://www.technogumbo.com/<title>Security Now and New Museum</title><pubDate>Fri, 22 May 2009 22:14:56 EST</pubDate><description>&lt;p&gt;&lt;img alt="The place that TR became president" src="Classes/phpThumb/phpThumb.php?src=../../images/SecurityNowNewMuseum0522091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I have been a long time listener to the Security Now podcast and found particular interest when Steve was recently raising questions about why kiosksand museums run Windows on most of their machines.  It was pretty cool because I wrote in giving an industry centric response in collaboration with &lt;a href=&quot;http://backroom.bostonproductions.com/?p=57&quot;&gt;Brucesarticle on the subject&lt;/a&gt; and they read it on &lt;a href=&quot;http://twit.tv/sn196&quot;&gt;Security Now Episode 196&lt;/a&gt;.  Its around 105:00.&lt;br/&gt;&lt;br/&gt;In other news; tomorrow will be my second day off in roughly a month.I was in Buffalo for the first half of May at the &lt;a href=&quot;http://backroom.bostonproductions.com/?p=65&quot;&gt;Theodore Roosevelt Inaugural site installing some pretty cool exhibits&lt;/a&gt;.</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2009/04/The-Best-RC-Video-Information-Resource/</link>http://www.technogumbo.com/<title>The Best RC Video Information Resource</title><pubDate>Sun, 26 Apr 2009 8:07:05 EST</pubDate><description>&lt;p&gt;&lt;img alt="An old Team Associated RC10 Goldpan" src="Classes/phpThumb/phpThumb.php?src=../../images/BestRCResource0426091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;The actual originator of a lot of my projects in the last few years has been the old RC car I have.  Its a Team Associated RC10.  Ever since learning about the original DARPA urban challenge I have been interested in robotics and automated navigation.Its my belief that an RC hobbyist platform provides a great place to start for someone interested in learning how the pros do it and so does Mr. McLurkin in his &lt;a href=&quot;http://invention.smithsonian.org/video/&quot;&gt;interview at the Smithsonian Lemerson Center about robot communities&lt;/a&gt;.A phenomenal resource I have found while doing research on the availability of USB control this weekend has been the &lt;a href=&quot;http://blogs-rccaraction.com/&quot;&gt;videos by the late Chris Chianelli on The Radio Control Show&lt;/a&gt;.  They are simply amazing, have high production polish, and are entertaining.  Its very tragic that Chris is no longer around.  His videos are something else.&lt;br/&gt;&lt;br/&gt;The thing thats so amazing about these hobby RC vehicles whether it be plane, boat, or car is that they are so high performance that they draw an insane amount of power that is scary if you dont respect it.  That level of power provides a great learning opportunity in how to deal with such large amperages that can translate into working with electrical vehicles and components in a non-hobbyist situation.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/04/First-Glimpse-of-a-USB-Hbridge/</link>http://www.technogumbo.com/<title>First Glimpse of a USB Hbridge</title><pubDate>Thur, 16 Apr 2009 19:37:10 EST</pubDate><description>&lt;p&gt;&lt;img alt="Four 40amp MOSFETS driving four LEDs" src="Classes/phpThumb/phpThumb.php?src=../../images/FirstUSBHBridge0416091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;Im happy to present an image of my very first Hbridge being controlled by an opto-coupled microcontroller which is being controlled from a computer via USB.Just for testing, I have all four legs of the Hbridge on at once here.  In a real motor situation having all four legs on would cause either a breaking effect, or whats known as shoot-through where you accidentally cause a direct short through the bridge.This normally ends up ruining a bunch of components.  Currently I don&#039;t have the correct protection diodes to run an inductive load on this bridge, but I am tempted to anyway because its optocoupled and cant harm my computer.An inductive load is something that can generate electricity, or cause a magnetic field.  It basically means when you turn off something inductive its likely that thing will shoot some dangerous voltage back in the opposite direction it was being run at!In a DC system, you make sure everything always goes the same way, and inductive devices like transformers, motors, or coils can do damage if not handled correctly.  For having no formal training in electrical engineering I consider this a pretty good accomplishment.&lt;br/&gt;&lt;br/&gt;The major problem I still have with this is that like the old Futaba ESC(Electronic Speed Controller) I used to have, I want to be able to control both forward and reverse movement with only one PWM control line.  Im not quite sure what I will need to do in order to make that differentiation yet.Im thinking an active high pass filter is what I need to make, but have no clue how at this time.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/04/New-Museum-Technical-Journal/</link>http://www.technogumbo.com/<title>New Museum Technical Journal</title><pubDate>Sat, 04 Apr 2009 9:59:28 EST</pubDate><description>&lt;p&gt;&lt;img alt="Screen shot of backroom.bostonproductions.com" src="Classes/phpThumb/phpThumb.php?src=../../images/MuseumJournal0404091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;At Boston Productions, the members of the interactive programming department have put together a new online journal in which we will be discussing some of the technical aspects and challenges we work with each day.You can check it out at &lt;a href=&quot;http://backroom.bostonproductions.com&quot;&gt;http://backroom.bostonproductions.com&lt;/a&gt;.  Yesterday I posted an article describing the power requirements of a 4ohm Bunnell Railroad telegraph that we are automating for a project in New York.My boss also posted a great article about the changing landscape of the business we work in.&lt;br/&gt;</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2009/03/Application-and-Source-Code-For-Red5-Tuning/</link>http://www.technogumbo.com/<title>Application and Source Code For Red5 Tuning</title><pubDate>Sun, 22 Mar 2009 12:30:01 EST</pubDate><description>&lt;p&gt;&lt;img alt="Screen shot of the simple application" src="Classes/phpThumb/phpThumb.php?src=../../images/Red5Tuning0322091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I posted a new item in the projects section that is an open source/no license software release complete with source code.The application is intended for assisting in tuning the Red5 media server while doing live streaming.I made in in Flex using FlashDevelop.  The application should be a good resource for people trying to learn how to program flash applications for use with live streaming.I did my best to keep it all in one file and not abstract things too much.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><category>Adobe Flash</category></item><item><link>http://www.technogumbo.com/2009/03/The-Last-Year/</link>http://www.technogumbo.com/<title>The Last Year</title><pubDate>Fri, 20 Mar 2009 23:53:05 EST</pubDate><description>&lt;p&gt;&lt;img alt="Charles Palen with a host of computers doing a red5 test" src="Classes/phpThumb/phpThumb.php?src=../../images/TheLastYear03091.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;As I get older, something that has been getting more and more important to me is the amount I am learning in the time it takes me.  As many people say in various books about time management andall sorts of other things is that time is one of the only objects in life you can never get back.  Its been almost a year since I started keeping a journal of what I do every day, mostly related to thetime I spend at work, when I get up, and progress on personal projects.  I feel as if I have become the most improved in flash programming over the last year; which is pretty cool.The disappointment of the year is presentable progress in electrical engineering.  There are a few EE projects that have been a waste of time too such as the wireless headphones and the EEEPC based GPS navigation (which works, but I never use it).All in all its been a tremendous year for learning mostly thanks to my job.  Although it pains me to turn another year older without knowing exactly how to do all the things I want to; I am very thankful for what I have.&lt;br/&gt;&lt;br/&gt;A lackluster and incomplete listing of what I can recall learning in the last year can be found below:&lt;br/&gt;&lt;br/&gt;Smarty Templating System&lt;br/&gt;How to Develop Gallery Modules&lt;br/&gt;how (electrical) transformers work&lt;br/&gt;methodologies for working with mosfets&lt;br/&gt;methodologies for working with op-amps&lt;br/&gt;methodologies for working with optocouplers&lt;br/&gt;concepts of forward biasing, bitshifting, darlington pairs, ..etc..etc.&lt;br/&gt;better circuit board making abilities&lt;br/&gt;I spent some time looking at circuit simulation software such as Multisim and spice&lt;br/&gt;a better understanding of c bitwise operators&lt;br/&gt;How to move to a new state&lt;br/&gt;How to live half a country away from family&lt;br/&gt;how to ride a commuter train&lt;br/&gt;how to drive more aggressively on the east coast&lt;br/&gt;how to fly in a post 911 airline system and during holidays&lt;br/&gt;massive increase in understanding of flash development&lt;br/&gt;an understanding of how a museum multimedia control system works + most of the associated equipment&lt;br/&gt;moderate knowledge of the methodology and processes used in harr image recognition training&lt;br/&gt;Up to lecture 21 in linear algebra with professor Strang thanks to opencourseware and MIT&lt;br/&gt;a better understanding of fundamental principals of algebra&lt;br/&gt;a better understanding of what it means to source and sink current from a design perspective&lt;br/&gt;how to make bread and stew&lt;br/&gt;the size of WWII ships thanks to east coast first hand history&lt;br/&gt;how to invest in stocks&lt;br/&gt;a moderate understanding of socket programming&lt;br/&gt;the story of how the laser was invented&lt;br/&gt;the story of the first pocket pc&lt;br/&gt;the story of IdSoftware and the events that led up to the making of Doom and post Doom ID&lt;br/&gt;the story of Charles Kettering&lt;br/&gt;increased general knowledge of science&lt;br/&gt;increased general knowledge of economics&lt;br/&gt;how to do opencv programming in Eclipse&lt;br/&gt;mild understanding of how to use QT and gtk&lt;br/&gt;finished the RS232 to USB board and PWM board&lt;br/&gt;how to make my own breakout boards for surface mount IC&#039;s&lt;br/&gt;&lt;br/&gt;I know there are a lot more, but I cant remember them all.  I will be realeaseing an open source tool this weekend and you can hold meaccountable to it.  It should be a good resource for those learning actionscript for the purpose of media streaming.</description><category>Personal</category></item><item><link>http://www.technogumbo.com/2009/03/4N25-Optocoupler-Information-Available/</link>http://www.technogumbo.com/<title>4N25 Optocoupler Information Available</title><pubDate>Mon, 02 Mar 2009 6:30:30 EST</pubDate><description>&lt;p&gt;&lt;img alt="The 4N25 with wires soldered to it inserted into a breadboard" src="Classes/phpThumb/phpThumb.php?src=../../images/OptoCouplerIsolator03010911.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;I put up a page about lessons learned while working with the Fairchild 4N25 optocoupler in the projects section.  I included two diagrams as well as some pictures.  A quick summary of the points that I cover are as follows:&lt;br/&gt;&lt;br/&gt;1.Dont waste your time making or purchasing a breakout board for a package size that is large enough to directly solder wires to.&lt;br/&gt;&lt;br/&gt;2.Im not sure about other optocouplers, but the 4N25 works on the major principal of sinking current.&lt;br/&gt;&lt;br/&gt;3.Pin 6 (the base of the transistor) is used to tweak the sensitivity of the optocoupler.&lt;br/&gt;&lt;br/&gt;4.A simple test setup for an optocoupler can be constructed using a single power source, LED, resistors, and a pushbutton switch.&lt;br/&gt;&lt;br/&gt;You can find more detail about this in the projects section under &lt;a href=&quot;http://www.technogumbo.com/projects/Learning-to-Use-an-Optocoupler-or-OptoIsolator&quot;&gt;Learning to Use an Optocoupler or Optoisolator&lt;/a&gt;.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/02/Working-With-A-Hbridge-Driver-and-Optocoupler/</link>http://www.technogumbo.com/<title>Working With A Hbridge Driver and Optocoupler</title><pubDate>Wed, 11 Feb 2009 6:28:31 EST</pubDate><description>&lt;p&gt;&lt;img alt="A USB integrated development environment" src="Classes/phpThumb/phpThumb.php?src=../../images/HbridgeOptocoupler0211091.jpg&amp;h=150"align="left" hspace="4" vspace="2" /&gt;I&#039;m excited to start learning how to effectively use a h-bridge driver and Optocoupler.  I created the breakout boards pictured in the bottom of the image last Monday at work and got my development environment set back up and running on a breadboard.The components I use in my development environment are as follows.&lt;br/&gt;&lt;br/&gt;1.An FTDI FT232RL for easy USB communication to the computer&lt;br/&gt;2.An Atmel ATMEGA 8L running at 8mhz programmed by a direct home-made parallel cable programmer&lt;br/&gt;&lt;br/&gt;Both of these components and associated LED&#039;s etc, don&#039;t require much amperage so they can all be powered off the USB bus power.  The optocoupler is a commonly found Fairchild 4N25 and the bridge driver is a Freescale 33883.A high note of this project already is that I had zero problems with making the breakout boards and the surface mount soldering.  When I checked all the pins I had no bridges and good continuity between all the pads and pins.</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/02/Essay-on-Why-Robotic-Telepresence-is-a-Good-Investment/</link>http://www.technogumbo.com/<title>Essay on Why Robotic Telepresence is a Good Investment</title><pubDate>Sun, 01 Feb 2009 19:44:11 EST</pubDate><description>If you take a look in the blog section of the site back to Nov 2nd 2008, I spoke about writing a paper about why robotic telepresence would be a good thing to work on.I posted the essay in the projects section today.  The argument is by no means complete, but I tried to address factors of timing, culture shifts, and currently available products.I decided although not as complete as I would like it to be, I needed to post the paper so I could stop worrying about it and focus on other areas of work in my spare time.I would be grateful if anyone decides to read it and post opinions and comments, good and bad.&lt;br/&gt;&lt;br/&gt;I hope you all have a great week!</description><category>Robotics</category></item><item><link>http://www.technogumbo.com/2009/01/MAX3238CDBR-Eagle-Cad-Schematic-For-Download/</link>http://www.technogumbo.com/<title>MAX3238CDBR Eagle Cad Schematic For Download</title><pubDate>Wed, 28 Jan 2009 6:51:48 EST</pubDate><description>Roughly eight months ago I made a RS232 to USB converter and used a TI MAX3238CDBR in a SSOP-28 package to do the TTL to RS232 logic level conversions.At the time there was no footprint library available for Eagle Cad that included this chip in this package, so I made my own.  Now that I am working with Eagle again,I remembered about this schematic and wanted to provide it for download.  Feel free to use it however you want.  &lt;a href=&quot;http://www.technogumbo.com/2009/01/MAX3238CDBR-Eagle-Cad-Schematic-For-Download/Max3238.lbr&quot;&gt;Download the Eagle MAX3238CDBR library.&lt;/a&gt;</description><category>Electrical Engineering</category></item><item><link>http://www.technogumbo.com/2009/01/RCE-Cast-a-Net-Cast-on-High-Performance-Research-Computing/</link>http://www.technogumbo.com/<title>RCE Cast a Net Cast on High Performance Research Computing</title><pubDate>Mon, 19 Jan 2009 21:01:33 EST</pubDate><description>I am proud to announce the release of RCE01 the first episode of the Research Computing and Engineering net cast.This show has been developed and is hosted by my cousin Brock Palen.  In RCE01 he talks to Jeff Squyres and George Bosilca of the Open MPI project.I am a huge fan of net casts and I am happy to see my cousin working on one.  For episode one, I found the show to be quite informative.RCE-Cast offers a &lt;a href=&quot;http://www.rce-cast.com/index.php/Current-Nominations.html&quot;&gt;topic nomination system&lt;/a&gt;, so you can even see current nominations and make your own.  Im looking forward to the next episode.</description><category>Technology</category></item><item><link>http://www.technogumbo.com/2009/01/DIY-Long-Range-Wireless-Headphones/</link>http://www.technogumbo.com/<title>DIY Long Range Wireless Headphones</title><pubDate>Sun, 18 Jan 2009 16:45:01 EST</pubDate><description>&lt;p&gt;&lt;img alt="Testing wireless headphones" src="Classes/phpThumb/phpThumb.php?src=../../images/WirelessHeadphones0118091.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;I spent a few hours yesterday and today making a pair of long range wireless headphones.  I used to do a lot of media production and had a wireless microphone kit laying around.It turns out that all you have to do is plug the transmitter into a standard headphone jack, then plug a normal pair of headphones into the receiver.&lt;br/&gt;&lt;br/&gt;In the transmitter and receiver I have, the Sennheiser ew100G2&#039;s I was only getting the left headphone out of the receiver.  In order to fix this I took a pair of junk headphones and re-wired them to play one channel in both ears.I&#039;m excited about using this solution because the 100G2&#039;s heave excellent range.  In college my friends and I used them to &quot;put a wire&quot; on someone in our dorm and were able to get transmission through several walls, floors, and across several hundreds&#039; of feet.&lt;p&gt;&lt;img alt="Finished rewire of headphones" src="Classes/phpThumb/phpThumb.php?src=../../images/WirelessHeadphones0118092.jpg&amp;w=150"align="left" hspace="4" vspace="2" /&gt;</description><category>Electrical Engineering</category></item></channel></rss>