» pages: blog | About Me | projects | Resume |

A Year of Projects

projects — davidb — December 8th, 2009

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.

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 RIT CE website.  If you have some time, in addition to looking at my project, I would recommend looking at the other RIT CE Senior Design Projects, most notably Jeff Kemp, Matt Prokop, and Mike Sanfilippo’s Home Sense Project (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.

description

description

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’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’s Master’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.

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.

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 “bunny suit” 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, <100> 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.

PMOS Crossection

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.

PMOS Test Results

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.

For CSH, 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 iButton 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.

iButton Doorlock Prototype

Another somewhat related project is something Dan Lampie and I have been working on – a power meter for Dan’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’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.

Picture of the wind turbine circuitry

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 – the NBA Jam series was coded entirely in assembly.

Picture of our Wine Tasting

NBA Jam TE Champion

Greenovation at RIT

projects, wind power — davidb — January 18th, 2009

A couple of friends of mine have started a new website dedicated to “Greenovation” (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’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.

Wind Turbine at RIT

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’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’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 on his website.

what I’ve been doing..

VLSI, fpga, projects, uController — davidb — November 16th, 2008

I’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 – it’s not. But, I made it through and I’m pretty damn proud of myself. So, since I think it’s pretty interesting, I decided to post what I’ve been up to the past couple of months.

First, the most recently completed project – VLSI. For my project, my partner and I had to design and layout an 8-bit Brent-Kung adder with BIST using TSMC 0.35 micron N-Well process technology. What’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 final report. For fun, and to show how one goes about doing physical layout, here’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.

PPA8BIST on IO Pad

Next,the adder layout. Note: that space at the left top and bottom was on purpose: it’s for the DFF.

PPA8 - BK adder

Next, everyone’s favorite ASCII art: the “I passed LVS check mark/smiley face.” 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.

LVS

When we finished the layout, we printed it to the 36″ plotter. Naturally, I hung my masterpiece on the wall above my bed.

Plot of PPA8BIST proudly hung above my bed

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’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 here. Here’s a picture of the final circuit and my beautiful finger.

Heart rate monitor circuit. Notice my finger!

And, just to prove it works, here’s the oscilloscope output.

Heart beat oscilloscope output

The final project I’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’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.

proprietary fpga dev board + linux

fpga, linux, projects, virtualization — davidb — May 12th, 2008

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’s Simon game by Matel.

I wanted to be able to work on this project from home, so I went ahead and downloaded Xilinx ISE Webpack from http://www.xilinx.com. I run Linux (specifically Debian) 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’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’s not a problem.

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’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’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.

That’s definitely spiffy, but what’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 – this nifty feature allows me to install Digilent’s programming software in Windows and program the FPGA without rebooting.

wind-powered wifi AP repeater

projects, wind power — davidb — April 22nd, 2008

I can not really take credit for this one, but a couple weekends ago I helped a friend of mine, Dan Lampie, set up a wind turbine here at RIT (check out his website for more details). Dan has been talking about/working on this project for about a year now (well, he started it last year at least). Last summer he sent me a couple of pictures of the turbine set up in his backyard. It was more or less the same set up that he has now, only the previous iteration was just being used to power a light bulb (and to measure what kind of power it can supply). Dan built the whole thing himself along with a bit of advice from a professor and some internet forums. It is quite impressive and (at least to me) surprisingly not terribly complicated to do.

He wanted to set it up at RIT for Imagine RIT: RIT’s Innovation & Creativity Festival (on May 3rd, if you are in the area, check it out). After about half a year of red tape and bureaucracy (literally 100s of emails), he finally managed to get RIT’s permission to install it on campus. Dan drove up for the weekend from Boston (where he’s currently interning at Cisco) and asked me to help him set it up. We took a bunch of pictures, so here’s a few. This first one is after we got most of the stakes down, when we were installing the turbine itself onto the post.

Ataching the turbine to the post

I’m the one with my back turned to the camera, Dan is in front of me, and Chris (who also offered to help) is the one in the brown sweatshirt.

Almost there..

The next step was just to stake everything down. You can’t really tell from the picture, but the ground was extremely wet as it had been raining quite a bit. The stakes went in rather easily, but we were covered in mud by the time we finished.

Electronic guts. Two 12V batteries and a circuit to limit the charge

This picture shows the electronics that make the whole thing work. Dan built the charging circuit himself. Essentially the windmill recharges two 12V batteries and the circuit exists to make sure it does not over charge them. The wireless AP/repeater (not in the picture) is connected to the battery terminals. We “waterproofed” it using plumber’s putty, the platic tuperware box, and that metal box that Dan got off ebay). It is not exactly environmentally tested, but the components are rugged enough that they should be fine even if a bit of water gets in there from humidity/condensation.

The finished product

There’s Dan standing proud with his finished product. As you can tell from the picture, when there’s a big gust the blades spin pretty fast. Standing right underneath it was kinda scary, but it is very stable. The location is not ideal for a wind turbine because the trees/buildings shield it from the wind, but it still works. The building behind him is Gracie’s (the main RIT cafeteria on the dorm side of campus). The turbine’s AP gets the wifi signal from there and then broadcasts it down the “quarter mile” (RIT’s main walkway from the dorm to the academic side of campus). We haven’t done too much extensive testing of it, but it does work. Dan will probably be up here before the festival to do a bit more tweaking of the project. It’s certainly cool and goes along with the seemingly “new trend” of eco-friendliness/”going green.” If you are interested in doing something like this yourself, there is a vast amount of resources online (search diy wind turbine) or contact me and I can get you in touch with Dan.

my router plays music!

projects, wireless boombox — davidb — April 17th, 2008

I think I mentioned this project in a previous post, if not here it goes: I plan to make a wireless, portable internet boombox from a bunch of parts I scrounged up/have had lying around my house for a while. I bought a Netgear WGT634U wireless router off of ebay for ~$30. The reason I went for this particular model is that it comes with a USB port on the router itself. This was really useful since it allowed me to buy a cheap USB sound card off of ebay (~$5). This, combined with an old Magnavox boombox that I have had for years, will form my wireless boombox. My goal is to have it be completely battery powered, but that may not be 100% feasible.

As soon as I got the router, I spent a few hours installing and configuring/playing with OpenWRT. Unfortunately the sound card shipped from Hong Kong, so I had to wait about a week for it to get here. It finally arrived yesterday and as soon as I got a chance today, I hooked it up and started streaming my music over the air.

Wireless Boombox

There’s a picture of the setup I have so far. I took the top of the router off to start messing around with it and haven’t put it back on yet. That little thing jutting out of the back of the router is the USB sound card. The boombox does not have an aux in port, so for now I ripped apart a really old pair of head phones and attached the leads to the tape deck head. I don’t have long enough screwdrivers to take apart the boombox yet, but once I do I plan to take out the electronics for the cd player and enclose the router in the boombox. Also, I will attach the headphone leads more permanently (likely replacing the cd player module’s connections). The other thing I need to do is find an appropriate battery to power this set up as I would really like it to be truly wireless.

Once all of that is out of the way, the only thing left to do is to figure out how to control the thing. I plan on using mpd/mpc for the music player software, but having to ssh to the boombox to get it to play music somewhat defeats the purpose. The router does have a serial console port, so I may end up wiring the buttons on the boombox to change the song and use a c program to monitor it and trigger the appropriate mpc commands. Another option/additional feature might be setting up a very simple webpage that I could view from my phone that displays information about the current song and allows the various playback controls. I don’t have one of those fancy smart phones, but my phone should be able to support something like that. Besides that, I could also have a fancier AJAX-y web interface (but again, that seems to defeat the purpose). I am looking forward to finishing this thing up, but I have quite a bit of school work these next couple of weeks so I’ll see how it goes. The weather’s getting nicer outside so I’d really like to get this thing together and use it at a BBQ.

a new quarter

clubs, projects — davidb — March 17th, 2008

This past month, specifically the past few weeks, has been rather busy for me. It’s the beginning of yet another quarter at RIT and I have an overwhelming feeling of relief. I decided to take on 20 credit hours last quarter. I did quite well (all A’s), but I don’t miss that feeling of always having some homework assignment, project, or paper looming over me.

This quarter I should have a lot more free time since I decided not to continue working as a grader. That said, I am going to spend this free time doing the numerous projects that I have wanted to finish up/start. I am really excited about this because I have been wanting to finish these projects up for quite some time. To start with, I have decided to work with a friend of mine, Heewa Barfchin, to start up a few new initiatives here at RIT.

There has been a lot of talk recently about the One Laptop Per Child project. After looking over the current state of the project, it is fairly evident that there is still an unmet need in the amount of software that has been ported to/created for it. There are a number of project ideas that I have related to this project, so Heewa and I decided to try to get the RIT CS department involved in OLPC. So far, we have a couple of professors interested in the project and now the ball is in our court. We plan to develop a fully-functional application by the end of the quarter that can be used as a “prototype” to showcase the potential of the project at RIT and potentially establish an OLPC lab at RIT.

Another idea stemmed from discussions with Heewa has brought light to a new club, the Society of Lectors. Check out our Google Groups page. Essentially the idea is to encourage collaborative education. It is impossible to learn every thing you need to know to be successful in your field by just going to your classes. A lot of my friends have specialties in a lot of different areas. Not only that, but sometimes I am not able to take a class on a topic I may be interested in. So, we decided to start a club that meets weekly and allows its members a venue to lecture one another on a topic of each individual’s choice. This society is not at all limited to RIT students. We encourage anyone to stop by and listen or to even give a presentation. Students, professors, industry professionals, researchers, community members, visitors to the area, etc. Our first meeting is this Wednesday. All the information on the meeting is available here.

In addition to all of that, I plan to develop a few individual software and hardware projects of my own. More on that will come as the ideas are further developed and realized. Though, I’ll mention one of them – I have an old wireless router and boombox that I plan to combine to make a portable wireless mp3 player.

Oh, one more thing – BarCampRochester3. If you don’t know what a BarCamp is, go check out the wiki. I agreed to help co-host the event this year at RIT (handling the finances and filling in wherever else). BarCamp is an excellent, unique opportunity to meet up with some cool people and discuss a large variety of topics. The idea is very similar to the Society of Lectors – a collaborative exchange of knowledge. Essentially it is a day full of presentations; the catch is you are not only an audience member, you are a participant. I’m really excited about this year’s BarCamp. The date is set for Saturday, April 5 10am until end in the Golisano College of Computing and Information Sciences at RIT. Check out the wiki page for all the details. Hope to see you there!

(c) 2010 david-brenner.net | powered by WordPress with Barecity