<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>david-brenner.net</title>
	<atom:link href="http://www.david-brenner.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.david-brenner.net</link>
	<description></description>
	<lastBuildDate>Tue, 08 Dec 2009 13:32:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Year of Projects</title>
		<link>http://www.david-brenner.net/2009/12/a-year-of-projects/</link>
		<comments>http://www.david-brenner.net/2009/12/a-year-of-projects/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 13:26:48 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=109</guid>
		<description><![CDATA[For a while I was doing a good job keeping up to date with documenting all of the interesting projects that I have been doing, posting about once a month to my website. Then almost an entire year passed without any real updates. So, this is what I have been up to during that year [...]]]></description>
			<content:encoded><![CDATA[<p>For a while I was doing a good job keeping up to date with documenting all of the interesting projects that I have been doing, posting about once a month to my website. Then almost an entire year passed without any real updates. So, this is what I have been up to during that year of silence.</p>
<p>I will start off with the projects that I have done as part of my course work at RIT. Last winter I started my Senior Design project, finishing it in the spring. For this course, we are allowed to pick our own teams and project. I teamed up with Cory Merkel and we worked on an Autonomous Weapon Turret, building the mechanical parts, hardware, and software ourselves. All of our work is very well documented on our <a href="http://www.ce.rit.edu/research/projects/2009_spring/Autonomous_Weapon_Turret/">RIT CE website</a>.  If you have some time, in addition to looking at my project, I would recommend looking at the other <a href="http://www.ce.rit.edu/research/seniorprojects.htm">RIT CE Senior Design Projects</a>, most notably Jeff Kemp, Matt Prokop, and Mike Sanfilippo&#8217;s <a href="http://www.ce.rit.edu/research/projects/2009_spring/Home_Sensor_Network/">Home Sense Project</a> (a home sensor network/automation project using Xbee modules). Below are a couple of pictures from our project. The first picture shows an early version of the software and the second shows the finished weapon turret.</p>
<p style="text-align: center;"><a href="http://dbrenn.com/content/2009/photos/awt_software.png"><img class="aligncenter" alt="description" src="http://dbrenn.com/content/2009/photos/awt_software-scaled.png"/></a></p>
<p style="text-align: center;"><a href="http://dbrenn.com/content/2009/photos/awt_turret.png"><img class="aligncenter" alt="description" src="http://dbrenn.com/content/2009/photos/awt_turret-scaled.png"/></a></p>
<p>I also took a Low Power Design course, focusing on the design of low power CMOS systems using circuit level, logic level, and system level power optimization techniques. This course proved to be a very good summary of the techniques both currently used in industry and being activelly researched in academia. We used simulation tools from Synopsys and Mentor Graphics in order to implement these techniques learned in class in a few smaller projects. My group&#8217;s final project was to take an AES hardware implementation and implement the low power techniques using Synopsys Design Compiler, Power Compiler, and PrimeTime. Our optimized design (utilizing clock gating and parallelization) resulted in a 29% reduction in power consumption over the baseline architecture with an 88% increase in area. Different configurations were also used to allow for more options for power/area trade-offs. This environment and our design recommendations were used in Ken Smith&#8217;s Master&#8217;s thesis that looked at AES power-profile-based side channel attacks. Specifically, he used our work to obtain instantaneous power traces that he then used as input vectors to his algorithm in order to determine the AES encryption key value.</p>
<p>My Systems Programming course focused on using x86 assembly and C in order to design and implement an operating system. The projects for this class included a simple assembler written in x86, Solaris system calls, device drivers, interrupts, process/thread management, pipes and fifos, terminal I/O, System V IPC, socket programming, and filesystems.</p>
<p>One of the more exciting classes that I just finished a few weeks ago was Microelectronics. In this class, in addition to the lecture section, I got to suit up in a &#8220;bunny suit&#8221; and get some hands-on expereince in fabricating semiconductor devices. We used the RIT Metal Gate PMOS process with a 10 micron feature size to fabricate PMOS transistors, op-amps, and logic gates (NAND, NOR) on 6-inch, &lt;100&gt; n-type Si wafers. In addition to the physical manufacturing, the process was simulated using ATHENA and the electrical simulations were preformed using ATLAS in order to compare our results between the theoretical, simulated, and experimental. A cross section of a PMOS transistor manufactured through this process is shown in the picture below.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2009/photos/pmos.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2009/photos/pmos-scaled.png" alt="PMOS Crossection" /></a></p>
<p>The process included many of the same techniques used in modern CMOS processes. These include oxide growth, etch, photolithography, ion implantation, metal deposition, sintering, and electrical tests to validate the device functionality. The four photolithography steps were source and drain, gate, contact cut, and metal. Unfortunately I did not think to take pictures, but I do have a picture of the testing apparatus and results from the notes, shown below. The figure on the left shows the microscopic view of the wafer, specifically a PMOS transistor. The 12 probes (along the outside of the image) are aligned to the metal (aluminum) pads along the outside of the device for testing purposes. A HP-4145 analyzer was then used in order to do a voltage sweep to obtain a ID-VG curve and a ID-VD curve.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2009/photos/pmos_test_results.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2009/photos/pmos_test_results-scaled.png" alt="PMOS Test Results" /></a></p>
<p>As far as independent projects go, I have been working on a few of those as well. First of all, I bought a couple of touchscreen monitors from a local electronics recycling company. I plan on using the monitors to build a touchscreen jukebox for my parents. Unfortunately, I am having trouble finiding the right power supply that is able to power the display, which makes me think the display itself is broken. I have a few different adapters that meet the specifications on the monitor and service manuals. The speakers and touch interface both work fine when I turn the monitor on, but the display itself will not turn on. I plan to meet with the company that sold them to me this week to confirm this, primarily to see if they will replace them before I take the monitors apart to diagnosis/fix the problem myself.</p>
<p>For <a href="http://www.csh.rit.edu">CSH</a>, I finished a design for a networked iButton door lock system. The purpose is to allow members of CSH to unlock common room doors electronically using an <a href="http://www.ibutton.com">iButton</a> and a solenoid locking mechanism. This essentially consists of an ATmega168 microcontroller (arduino), a WIZ811MJ wizenet ethernet module with SPI, an iButton reader, and a power MOSFET to control the solenoid locking mechanism. A working prototype version of this is shown in the picture below. I have a PCB design finished that I plan on manufacturing later this month so that I can actually install the system on the floor. I will post a more detailed update once that project is completely installed and finished. Below is a picture of the prototype. I probably should have done a better job setting that picture up, but a picture is better than no picture.</p>
<p style="text-align: center;"><img class="aligncenter" alt="iButton Doorlock Prototype" src="http://dbrenn.com/content/2009/photos/ibutton_proto.png"/></p>
<p>Another somewhat related project is something <a href="http://www.danlampie.com">Dan Lampie</a> and I have been working on &#8211; a power meter for Dan&#8217;s wind turbine. The core of this system is essentially the same as the iButton doorlocks. It uses the same microcontroller and ethernet module. Additionally, it has a hall-effect current sensor with a couple of op-amps for signal conditioning. Another, though quite different hall-effect sensor is used to monitor the blade speed (basically the same as the bike speed sensors). The microcontroller collects this information and sends it approximately once per second to a server through a wifi router installed at the wind turbine site. The server logs all of this information in a MySQL database and displays it in pretty graphs. This project is also still in the prototype stages. A couple of weeks ago we installed it on Dan&#8217;s turbine, but we had to make a few tweaks last weekend to get it working. I think within a month or so we should have it pretty stable, considering the upcoming holiday break and the fact that it has been difficult for Dan and I to find time to work on the project. Below is a picture of our prototype. I appologize for the picture quality, I only had my cell phone on me at the time.</p>
<p style="text-align: center;"><img class="aligncenter" alt="Picture of the wind turbine circuitry" src="http://dbrenn.com/content/2009/photos/wind_turbine_proto.png"/></p>
<p>Finally, to end this rather long post, I have a couple projects of a much, much less technical nature. First, shown in the picture below, my room mate and I held a wine tasting as part of our Wines of the World class. We chose Australian wines as our theme since their wines are typically inexpensive and  of relatively good quality (we are both still college students). Second, over Thanksgiving break I beat my favorite Super Nintendo game, NBA Jam Tournament Edition. I remember playing this game on my SNES when I was younger, but I was never able to beat the entire game. This is likely because I never had the patience to play more than a couple games at a time. Overall I think I spent just a few hours over the course of a week playing the game to beat it. An interesting trivia fact &#8211; the NBA Jam series was coded entirely in assembly.</p>
<p style="text-align: center;"><a href="http://dbrenn.com/content/2009/photos/wine_tasting.png"><img class="aligncenter" alt="Picture of our Wine Tasting" src="http://dbrenn.com/content/2009/photos/wine_tasting-scaled.png"/></a></p>
<p style="text-align: center;"><img class="aligncenter" alt="NBA Jam TE Champion" src="http://dbrenn.com/content/2009/photos/nba_jam_te.png"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2009/12/a-year-of-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduate/Academic Research Tools</title>
		<link>http://www.david-brenner.net/2009/11/graduateacademic-research-tools/</link>
		<comments>http://www.david-brenner.net/2009/11/graduateacademic-research-tools/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 21:07:01 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=99</guid>
		<description><![CDATA[&#8220;The right tool for the job.&#8221; That phrase pretty much sums it up. When you have the right tools available, whatever you&#8217;re trying to accomplish becomes easy. When I started research for my Master&#8217;s thesis last summer, I spent a few weeks searching around for the best tools I could find. Now that I have [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;The right tool for the job.&#8221; That phrase pretty much sums it up. When you have the right tools available, whatever you&#8217;re trying to accomplish becomes easy. When I started research for my Master&#8217;s thesis last summer, I spent a few weeks searching around for the best tools I could find. Now that I have been using them for a while, I thought I would post a list here. I should note that I do a lot (actually all) of my work on linux machines. But, most of these programs are cross platform. If you have any favorite programs that I don&#8217;t have listed here, please let me know.</p>
<p><strong>Paper organization</strong><br />
First of all, especially if you&#8217;re just starting out, tools to help you organize your papers are invaluable. Use one! They can help you keep track of what you read and keep your papers and notes together in one place.</p>
<ul>
<li><a href="http://www.mendeley.com/">Mendeley Desktop</a> &#8211; (Cross platform) I have a feeling this startup is going to make a huge impact on the academic world. I&#8217;m not too excited about the social networking aspects of their product, but the desktop application for organizing your paper collection is awesome. I also like how their developers are extremely interactive. I complained about a missing feature on twitter and the developer sent me an email with a fix within a day!</li>
<li><a href="http://mekentosj.com/papers/">Papers</a> &#8211; (Mac only) This is a great program for organizing papers. If you have a Mac, download this and check it out. Personally I don&#8217;t use it, but that&#8217;s just because I don&#8217;t use Mac OSX.</li>
<li><a href="http://code.google.com/p/gpapers/">gPapers</a> &#8211; (Linux, Windows) This is essentially a clone of Papers. I like it because it&#8217;s open source (easy to change) and it&#8217;s pretty nice. For a while I played around with it, but I ended up using Mendeley.</li>
<li><a href="http://www.endnote.com/">EndNote</a> &#8211; (Windows, Mac) I hate this program. Thomson Reuters owns the Web of Science database that indexes almost every academic paper ever written. Yet, for some reason, they haven&#8217;t integrated that with EndNote. It has a lot of potential, but it&#8217;s clunky to use and annoying as hell. I only mention it because a lot of people use this to organize their papers. Feel free to try it, but I&#8217;d recommend against it.</li>
</ul>
<p><strong>Writing</strong></p>
<ul>
<li><a href="http://www.latex-project.org/">LaTeX</a> &#8211; (Cross platform) seriously, use it! It is so much easier to use than Word and it produces absolutely beautiful documents. Plus, it&#8217;s a must if you are doing a lot of math equations.</li>
<li><a href="http://code.google.com/p/latex-makefile/">latex-makefile</a> &#8211; A great makefile for LaTeX documents.</li>
<li><a href="http://www.vim.org/">Vim</a> &#8211; I love vim. More useful for coding than writing documents, but I still use it.</li>
<li><a href="http://gummi.midnightcoding.org/">Gummi</a> &#8211; (Linux only) LaTeX editor. I like this because it automatically updates the pdf preview as you type. Plus, it&#8217;s open source, being actively developed, and the developer encourages contributions.</li>
<li><a href="http://www.tug.org/texworks/">TeXworks</a> &#8211; (Cross platform) LaTeX editor. It&#8217;s useful. Doesn&#8217;t do auto-complete.</li>
<li><a href="http://www.xm1math.net/texmaker/">Texmaker</a> &#8211; (Cross platform) LaTeX editor. Lots of features. Too many for me.</li>
</ul>
<p><strong>Presentations</strong></p>
<ul>
<li><a href="http://latex-beamer.sourceforge.net/">LaTeX Beamer Class</a> &#8211; (Cross platform) This makes some beautiful presentations. It&#8217;s admittedly not as easy as a visual editor, but the resulting quality is worth it (especially if you have a lot of equations) .</li>
<li><a href="http://www.openoffice.org/product/impress.html">OpenOffice Impress</a> &#8211; (Cross platform) Normally I very much dislike the OpenOffice products, but I think they did a pretty decent job with their &#8220;powerpoint clone.&#8221; I use it for quick, short presentations.</li>
<li><a href="http://office.microsoft.com/powerpoint">Powerpoint</a> &#8211; (Windows, Mac) almost everyone knows about Powerpoint. 2007 has a lot of nifty features that can make some pretty presentations, but I don&#8217;t really like that much.</li>
</ul>
<p><strong>Figures</strong></p>
<ul>
<li><a href="http://www.inkscape.org/">Inkscape</a> (Cross platform) &#8211; my favorite program for diagrams, drawings, etc.</li>
<li><a href="http://www.xfig.org">xfig</a> (Linux) &#8211; vector graphics software. I find it to be very slow to use, but apparently it&#8217;s very useful if you learn the keyboard shortcuts.</li>
<li><a href="http://sourceforge.net/projects/pgf/">PGF and TikZ</a> &#8211; TeX macro package that makes very pretty LaTeX graphics. Steep learning curve.</li>
<li><a href="http://glx.sourceforge.net/">GLE</a> (Cross platform) &#8211; I haven&#8217;t actually used this yet, but it was recommended to me by a friend.</li>
<li><a href="http://www.mathworks.com/">Matlab</a> (Cross platform) &#8211; I use Matlab for making plots. I think they&#8217;re kind of ugly though.</li>
<li><a href="http://www.gnuplot.info/">Gnuplot</a> &#8211; I sometimes use gnuplot for making plots. I think they&#8217;re very ugly.</li>
<li><a href="http://projects.gnome.org/dia/">Dia</a> (Linux) &#8211; Sort of like Visio. I&#8217;m not a huge fan of it, but I do use it on occasion. It can export directly to svg/eps/pdf which Visio can not do. Although, apparently Visio can be manipulated through some plugins and post-processing save as an eps (plugin to save as pdf-&gt;ps-&gt;eps).</li>
<li><a href="http://www.graphviz.org/">Graphiz</a> (Cross platform) &#8211; Graph visualization software. Makes pretty graphs.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2009/11/graduateacademic-research-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Greenovation at RIT</title>
		<link>http://www.david-brenner.net/2009/01/greenovation-at-rit/</link>
		<comments>http://www.david-brenner.net/2009/01/greenovation-at-rit/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:22:37 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[wind power]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=89</guid>
		<description><![CDATA[A couple of friends of mine have started a new website dedicated to &#8220;Greenovation&#8221; (http://greenly.tv/). Being RIT students, a decent amount of their content is dedicated to programs/projects happening here at RIT. I know I don&#8217;t keep up with as much of these kinds of projects as I would like, so it is going to [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of friends of mine have started a new website dedicated to &#8220;Greenovation&#8221; (<a href="http://greenly.tv">http://greenly.tv</a>/). Being RIT students, a decent amount of their content is dedicated to programs/projects happening here at RIT. I know I don&#8217;t keep up with as much of these kinds of projects as I would like, so it is going to be nice to be able to follow it. I strongly suggest you check it out.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2009/photos/wind_turbine.png"><img class="alignnone" src="http://www.david-brenner.net/content/2009/photos/wind_turbine-scaled.png" alt="Wind Turbine at RIT" /></a></p>
<p>Also, if you follow my blog, you have probably read about the wind-powered wifi repeater my friend Dan Lampie installed on campus at RIT last spring. RIT administration decided to take it down after the Imagine RIT festival, so he has been trying since the fall of this year to reinstall it in a better location. A few weeks before Christmas he finally got all of the permission he needed and I again helped him set it up. We probably couldn&#8217;t have picked a worse day to install the turbine (in the middle of a blizzard). However, it went quite well. About a week ago, disaster struck. Well, not really. The only stakes we were able to get were no more than about a foot in length. Due to the nasty weather conditions last week, one of the stakes was ripped out of the ground and the turbine fell over, snapping one of the blades as it fell to the ground. So, Dan asked RIT Facilities Management Services (FMS) to provide us with some better stakes. The stakes out there now are 6 feet long and, barring a hurricane/tornado, are not going anywhere. So, now that the wind turbine is up and running again, he has ordered a new omni-directional atenna, some bigger batteries, and a solar pannel so that the batteries will still charge on non-windy days. He has a bunch of great ideas on what to power with the turbine, so I am really looking forward to seeing what comes out of it. I&#8217;m also going to help him out with some monitoring circuitry (a microcontroller to monitor current/voltage/power). More information on his turbine is available <a href="http://www.danlampie.com/wordpress/?p=122">on his website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2009/01/greenovation-at-rit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BarCamp Rochester 4</title>
		<link>http://www.david-brenner.net/2009/01/barcamp-rochester-4/</link>
		<comments>http://www.david-brenner.net/2009/01/barcamp-rochester-4/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 20:21:13 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[barcamp]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=69</guid>
		<description><![CDATA[
Great news! BarCamp Rochester 4 has confirmed the date of April 18, 2009. I registered two domain names (barcamproc.org and barcamprochester.org) and our website is up, running, and ready for attendees to sign up. So, if you or someone you know is going to be in the Rochester area, please sign up on our wiki. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone" src="http://www.david-brenner.net/content/2009/photos/bcr4logo.png" alt="BarCamp Rochester 4" /></p>
<p style="text-align: left;">Great news! BarCamp Rochester 4 has confirmed the date of April 18, 2009. I registered two domain names (<a href="http://barcamproc.org">barcamproc.org</a> and <a href="http://barcamprochester.org">barcamprochester.org</a>) and our website is up, running, and ready for attendees to sign up. So, if you or someone you know is going to be in the Rochester area, please sign up on our wiki. We&#8217;re also currently looking for sponsors. If you think your organization may be interested in helping us out, please drop me an email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2009/01/barcamp-rochester-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>toggle headphones/speakers key via xbindkeys</title>
		<link>http://www.david-brenner.net/2008/12/toggle-headphonesspeakers-key-via-xbindkeys/</link>
		<comments>http://www.david-brenner.net/2008/12/toggle-headphonesspeakers-key-via-xbindkeys/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 01:48:19 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=59</guid>
		<description><![CDATA[I&#8217;ve been using xbindkeys for a few years now to create keyboard shortcuts on my computer. It&#8217;s super useful, and a quite easy way to get the multimedia keys on my keyboard to do what I want. A quick tutorial on xbindkeys: 
First, install it
sudo apt-get install xbindkeys
Then, run the following in a console to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using xbindkeys for a few years now to create keyboard shortcuts on my computer. It&#8217;s super useful, and a quite easy way to get the multimedia keys on my keyboard to do what I want. A quick tutorial on xbindkeys: </p>
<p>First, install it
<pre lang="bash">sudo apt-get install xbindkeys</pre>
<p>Then, run the following in a console to grab input for a specific key press combination.
<pre lang="bash">xbindkeys -mk</pre>
<p> Select the window that pops up, type the key, and on the console you should see some output something like this:</p>
<pre lang="bash">
"(Scheme function)"
    m:0x10 + c:98
    Mod2 + Up
</pre>
<p>Copy and paste that into your .xbindkeysrc and change &#8220;(Scheme function)&#8221; to &#8220;foo&#8221; where foo is the command you would like executed. Quit that, run xbindkeys, and whenever you type that key combination, foo will be executed.</p>
<p>So, a few months ago I bought a pair of 2.1 speakers for my computer. In the past I&#8217;ve only used headphones, so being able to lie in bed and watch movies/listen to music was very nice. However, I tend to work late into the night and my room mates don&#8217;t exactly appreciate my loud music. So, I still use headphones occasionally. The problem is I don&#8217;t want to have to unplug the speakers and plug them back in every time I want to use headphones. Luckily, my sound card has multiple line outs. So, a combination of amixer and xbindkeys allows me to simply hit a button on my keyboard to switch between the headphones and the speakers.</p>
<p>Here&#8217;s the snippet of my .xbindkeysrc that does this work:</p>
<pre lang="bash">
# favorites button - toggle headphones/speakers
"amixer set Surround toggle; amixer set Front toggle"
m:0x10 + c:230
Mod2 + NoSymbol
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/12/toggle-headphonesspeakers-key-via-xbindkeys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>what I&#8217;ve been doing..</title>
		<link>http://www.david-brenner.net/2008/11/what-ive-been-doing/</link>
		<comments>http://www.david-brenner.net/2008/11/what-ive-been-doing/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 11:59:26 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[VLSI]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[uController]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=39</guid>
		<description><![CDATA[I&#8217;ve been extremely busy the last 10 weeks. I decided it would be a good idea to take 4 graduate level computer engineering classes  (3 project-based) at the same time. Guess what &#8211; it&#8217;s not. But, I made it through and I&#8217;m pretty damn proud of myself. So, since I think it&#8217;s pretty interesting, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been extremely busy the last 10 weeks. I decided it would be a good idea to take 4 graduate level computer engineering classes  (3 project-based) at the same time. Guess what &#8211; it&#8217;s not. But, I made it through and I&#8217;m pretty damn proud of myself. So, since I think it&#8217;s pretty interesting, I decided to post what I&#8217;ve been up to the past couple of months.</p>
<p>First, the most recently completed project &#8211; <a href="http://en.wikipedia.org/wiki/VLSI">VLSI</a>. For my project, my partner and I had to design and layout an 8-bit <a href="http://en.wikipedia.org/wiki/Brent-Kung_adder">Brent-Kung adder</a> with <a href="http://en.wikipedia.org/wiki/BIST">BIST</a> using TSMC 0.35 micron N-Well process technology. What&#8217;s that? Well, an 8-bit adder is a device that adds two 8-bit numbers. Brent-Kung is a specific type of tree-adder (defining the way the circuit is organized) that is used as a basis for many other tree-adder networks as it attempts to minimize wiring tracks and fanout gate count. BIST stands for built-in self test, a mechanism that allows the circuit to test itself. The final area for the entire circuit (8-bit BK adder with BIST) was 28,757 square microns. Any one extra interested in this can read my <a href="http://www.david-brenner.net/content/2008/docs/VLSI_Project_Report.pdf">final report</a>. For fun, and to show how one goes about doing physical layout, here&#8217;s some pictures of our final layout. First, the adder with BIST. On the left is the adder/BIST on the I/O pad. On the right, the adder/BIST itself. For a closer view, just click on the image.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2008/photos/PPABISTIO.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/PPABISTIO_scaled.png" alt="PPA8BIST on IO Pad" /></a></p>
<p>Next,the adder layout. Note: that space at the left top and bottom was on purpose: it&#8217;s for the DFF.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2008/photos/BKAdder.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/BKAdder_scaled.png" alt="PPA8 - BK adder" /></a></p>
<p>Next, everyone&#8217;s favorite ASCII art: the &#8220;I passed LVS check mark/smiley face.&#8221; For those not-so-familiar with VLSI/Mentor Graphics tools, LVS stand for layout versus schematic. That means it compares my wonderful layout (those colorful polygons seen above) versus my schematic to ensure the extracted netlists from both the layout and schematic match. The schematic is functionally verified to work correctly by simulating it. In theory, if the schematic works and the layout passes LVS, the circuit should work. However, post-layout simulations should be done as well.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/lvs.png" alt="LVS" /></p>
<p>When we finished the layout, we printed it to the 36&#8243; plotter. Naturally, I hung my masterpiece on the wall above my bed.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2008/photos/room_with_vlsi_layout.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/room_with_vlsi_layout_scaled.png" alt="Plot of PPA8BIST proudly hung above my bed" /></a></p>
<p>The next project of interest: the heart rate monitor. The point of the project was to implement a complete automatic data acquisition system. (sensors, signal conditioning, analog-to-digital conversion, uController, and finally digital-to-analog conversion). The sensor for the system that we used was an opto-isolator. It works by emitting IR light through an LED that is then picked up by a photo transistor. So, for the heart rate sensor, a human finger rests on top of the opto-isolator that produces a varying voltage as a result of the blood flow through the finger. This signal is quite noisy and quite low in amplitude, so it was connected to an amplifier and low pass filter. Because the ATD we used requires 0 to 5V on the input, we added a final stage to level shift and amplify the signal to that range. This was then connected to the input of an HCS12 microcontroller programmed to calculate the heart rate and display it to a monitor via serial connection. If you&#8217;re interested, we made a poster displaying the schematics and a bit more detail on how the system works. You can take a look at that <a href="http://www.david-brenner.net/content/2008/docs/Heartbeat_Monitor_Poster.pdf">here</a>. Here&#8217;s a picture of the final circuit and my beautiful finger.</p>
<p style="text-align: center;"><a href="http://www.david-brenner.net/content/2008/photos/heartbeat_monitor.png"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/heartbeat_monitor_scaled.png" alt="Heart rate monitor circuit. Notice my finger!" /></a></p>
<p>And, just to prove it works, here&#8217;s the oscilloscope output.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.david-brenner.net/content/2008/photos/heartbeat.png" alt="Heart beat oscilloscope output" /></p>
<p>The final project I&#8217;ve been working on is an implementation of a median filter on a FPGA. Median filters are used to remove salt and peppering effects from an image. The system interfaces an external memory chip to the FPGA and connects to a PC via a parallel port. A program from a computer sends the gray-scale PNG image to the FPGA. The FPGA then processes the image and sends it back to the PC. The project was done using VHDL and the FPGA was a Xilinx Spartan II. In addition, a histogram stretching algorithm was implemented on the FPGA. Histogram stretching is a form of contrast enhancement. Once the median filter was successfully implemented, the histogram stretching algorithm was quite easy. Unfortunately, there&#8217;s no pictures for this one. This was a long quarter, but now I get 2 weeks to relax and work on a couple of my independent projects before I dive back into the school work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/11/what-ive-been-doing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>debian dual monitors with nvidia twinview</title>
		<link>http://www.david-brenner.net/2008/10/debian-dual-monitors-with-nvidia-twinview/</link>
		<comments>http://www.david-brenner.net/2008/10/debian-dual-monitors-with-nvidia-twinview/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:01:14 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=31</guid>
		<description><![CDATA[I recently bought a touch screen off ebay. I hooked it up to my laptop and tested it to make sure it works. It does (only one dead pixel)! The next step was to hook it up to my desktop in a dual head configuration. This wasn&#8217;t difficult to do by any means, but it [...]]]></description>
			<content:encoded><![CDATA[<p>I recently bought a touch screen off ebay. I hooked it up to my laptop and tested it to make sure it works. It does (only one dead pixel)! The next step was to hook it up to my desktop in a dual head configuration. This wasn&#8217;t difficult to do by any means, but it was a little bit tricky finding the option to set the screen order in TwinView. I have two monitors (one LCD w/ DVI and the touch screen TFT with VGA). By default, the Nvidia driver sets any VGA connection to screen 0. With a bit of digging, I found the &#8220;TwinViewXineramaInfoOrder&#8221; option from Appendix D of the Nvidia Linux Driver Readme/Install Guide:</p>
<blockquote><dl>
<dt><span class="term"><code class="computeroutput">Option "TwinViewXineramaInfoOrder" "string"</code></span></dt>
<dd>When the NVIDIA X driver provides TwinViewXineramaInfo (see the NoTwinViewXineramaInfo X config option), it by default reports the currently enabled display devices in the order &#8220;CRT, DFP, TV&#8221;. The TwinViewXineramaInfoOrder X config option can be used to override this order.</p>
<p>The option string is a comma-separated list of display device names. The display device names can either be general (e.g, &#8220;CRT&#8221;, which identifies all CRTs), or specific (e.g., &#8220;CRT-1&#8243;, which identifies a particular CRT). Not all display devices need to be identified in the option string; display devices that are not listed will be implicitly appended to the end of the list, in their default order.</p>
<p>Note that TwinViewXineramaInfoOrder tracks all display devices that could possibly be connected to the GPU, not just the ones that are currently enabled. When reporting the Xinerama information, the NVIDIA X driver walks through the display devices in the order specified, only reporting enabled display devices.</p>
<p>Examples:<br />
        &#8220;DFP&#8221;<br />
        &#8220;TV, DFP&#8221;<br />
        &#8220;DFP-1, DFP-0, TV, CRT&#8221;</p>
<p>In the first example, any enabled DFPs would be reported first (any enabled CRTs or TVs would be reported afterwards). In the second example, any enabled TVs would be reported first, then any enabled DFPs (any enabled CRTs would be reported last). In the last example, if DFP-1 were enabled, it would be reported first, then DFP-0, then any enabled TVs, and then any enabled CRTs; finally, any other enabled DFPs would be reported.</p>
<p>Default: &#8220;CRT, DFP, TV&#8221;</p>
</dd>
</dl>
</blockquote>
<p>So, with that, it&#8217;s pretty easy to do. I set it to &#8220;DFP&#8221; and it now works great! For reference, here&#8217;s the device section of my /ect/X11/xorg.conf:</p>
<pre lang="bash">Section "Device"
        Identifier      "Configured Video Device"
        Driver          "nvidia"
        BusID           "PCI:1:0:0"
        Option          "RenderAccel"
        Option          "TwinView"
        Option          "TwinViewOrientation"      "LeftOf"
        Option          "TwinViewXineramaInfoOrder" "DFP"
EndSection</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/10/debian-dual-monitors-with-nvidia-twinview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>alsa + mpd + flash sound fix</title>
		<link>http://www.david-brenner.net/2008/09/alsa-mpd-flash-sound-fix/</link>
		<comments>http://www.david-brenner.net/2008/09/alsa-mpd-flash-sound-fix/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 23:44:12 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=21</guid>
		<description><![CDATA[So I&#8217;ve had a problem for a while and haven&#8217;t bothered looking into it until now. When a web page loads flash with sound, it either: a) doesn&#8217;t play if mpd is playing or b) prevents mpd from playing sound unless I close firefox. Obviously this was an extremely irritating behavior. I thought it was [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve had a problem for a while and haven&#8217;t bothered looking into it until now. When a web page loads flash with sound, it either: a) doesn&#8217;t play if mpd is playing or b) prevents mpd from playing sound unless I close firefox. Obviously this was an extremely irritating behavior. I thought it was something to do with flash using the wrong sound driver, but it was right.</p>
<p>I finally actually looked into it. The fix is quite simple and painless. I had to configure mpd to use dmix (the alsa software mixer). All of the instructions are clearly <a href="http://mpd.wikia.com/wiki/Configuration#ALSA_dmix_Output">laid out</a> on the <a href="http://mpd.wikia.com">mpd wiki</a>. Enjoy! (NOTE: For those unfamiliar with mpd it is music player daemon, my music player of choice. Check out their wiki for more information).</p>
<p>As an added bonus, I just learned RIT has a debian mirror: http://mirror.rit.edu! Thanks to the RITLUG, I can now fetch my upgrades much, much quicker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/09/alsa-mpd-flash-sound-fix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>oh boy, it&#8217;s been a while!</title>
		<link>http://www.david-brenner.net/2008/09/oh-boy-its-been-a-while/</link>
		<comments>http://www.david-brenner.net/2008/09/oh-boy-its-been-a-while/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 00:37:50 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=19</guid>
		<description><![CDATA[So, I&#8217;ve only had about three months of down time. Pretty good, right? The problem: I had been hosting my website off of my desktop for a few months, but when it came time to move out to California for the summer, I realized this wasn&#8217;t going to work. I bought another computer to use [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve only had about three months of down time. Pretty good, right? The problem: I had been hosting my website off of my desktop for a few months, but when it came time to move out to California for the summer, I realized this wasn&#8217;t going to work. I bought another computer to use as a server and left it with a friend. Unfortunately, there were a few hardware compatability issues with my hardware and my friend didn&#8217;t have much time to mess with it. Now that I&#8217;m back in Rochester, I spent a few days configuring the machine and now my machine/website is back up!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/09/oh-boy-its-been-a-while/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>proprietary fpga dev board + linux</title>
		<link>http://www.david-brenner.net/2008/05/proprietary-fpga-dev-board-linux/</link>
		<comments>http://www.david-brenner.net/2008/05/proprietary-fpga-dev-board-linux/#comments</comments>
		<pubDate>Tue, 13 May 2008 01:24:18 +0000</pubDate>
		<dc:creator>davidb</dc:creator>
				<category><![CDATA[fpga]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://www.david-brenner.net/?p=20</guid>
		<description><![CDATA[For my Digital System Design course I was given the option to do the standard labs (about 3 labs and 2 projects: a vending machine controller and a BIST) or implement my own project of similar complexity. I decided to go with latter as it sounded like a good learning experience. So, I wrote up [...]]]></description>
			<content:encoded><![CDATA[<p>For my Digital System Design course I was given the option to do the standard labs (about 3 labs and 2 projects: a vending machine controller and a BIST) or implement my own project of similar complexity. I decided to go with latter as it sounded like a good learning experience. So, I wrote up my proposal and got my FPGA board: a Digilent BASYS. For my project, I decided to implement a clone of the popular 80&#8217;s Simon game by Matel.</p>
<p>I wanted to be able to work on this project from home, so I went ahead and downloaded Xilinx ISE Webpack from <a href="http://www.xilinx.com">http://www.xilinx.com</a>. I run Linux (specifically <a href="http://www.debian.org">Debian</a>) as my primary OS, so I installed the Linux version of ISE. The install certainly could have gone smoother (it seems to be targeted more towards RedHat), but thanks to a bit of research I was able to get it running smoothly. Unfortunately, Digilent (the maker of the development board I&#8217;m using) only has a Windows version of their software for programming the FPGA. I thought I was out of luck and would have to develop on my machine and then use a Windows machine to actually program the FPGA. But, thanks to VMWare, that&#8217;s not a problem.</p>
<p>The only thing that I have really missed since I completely switched over to Linux about a year ago is Microsoft Office. Open Office just doesn&#8217;t do it for me 100% (especially given the amount of .doc and .docx files I get from professors here at RIT). So, I run VMWare Server with XP as a guest operating system to address that problem. This way, I don&#8217;t have to reboot to open a word document or write a paper. This is also useful as it allows me to run a bunch of other Windows-only applications without the any real hassle.</p>
<p>That&#8217;s definitely spiffy, but what&#8217;s even cooler is the ability to share physical hardware between the host and guest OS. I can map a USB controller to my guest OS that will give me the ability to use USB devices in my VM just as I would if I were running WIndows nativelly on the machine. Long story short &#8211; this nifty feature allows me to install Digilent&#8217;s programming software in Windows and program the FPGA without rebooting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.david-brenner.net/2008/05/proprietary-fpga-dev-board-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
