About Author
Joe Caldwell - electrical/controls engineer. I hope you enjoy this repository of my various projects and ideas. Thanks for looking.



Search


Daily


Projects

Sunday
28Feb2010

Home Theater PC / Media Server Software

The software setup for my new HTPC started with a clean install of Ubuntu 9.10. This went without a hitch and it was time to install the various software packages that I use to get my system in working order.

Network Sharing

  • Samba (located in the System -> Administration menu after installation)

In the Ubuntu repository this is called the system-config-samba package. This is a great GUI tool for setting up shares on a Windows network and allows me to view all the content on my HTPC on my Windows machines. Just input your Workgroup, what you want to share and who is allowed to view it. This tool makes this process much easier than editing configuration files. One thing that confused me at first was setting up user access; make sure to include the computer name of the user in the "Windows Username" field. For example "joe" didn't work, but "DESKTOP\joe" did.

Backup

  • Scheduled Tasks (located in the System Tools menu after installation)

Called gnome-schedule in the repository this utility allows me to run a backup script at a particular time. This is basically a GUI frontend for CRON and therefore much easier for a Linux novice like myself. I run a RSYNC script every night at 2AM which synchronizes the hard drive containing my media archive with another hard drive. I have found this a better backup solution than having a RAID array because it doesn't rely on any controller hardware or software. If one of the drives fails I can just replace it and copy the files to the new one. If I want to put the hard drives in another machine I can just take them out and plug them in, no other configuration is necessary. I realize there are drawbacks to this system, but I prefer something that I understand and know how to fix as opposed to other solutions that I have tried that have failed and cannot be fixed (ie. the Drobo).

Media Playback

  • VLC - media player
  • Miro - RSS media aggregator/player
  • XBMC - media center
  • Boxee - media center based on XBMC but with web integration

This is the standard media grabbing and playback package I have been using for a while now. I use VLC whenever I'm in keyboard and mouse mode to play video and audio files. Miro isn't perfect, but it's better than any other media aggregator I have tried. XBMC is fantastic for local playback but it can't pull content from the web like Boxee, however, I prefer XBMC's simpler interface. Both XBMC and Boxee can be controlled via remote control. In the past Boxee was somewhat finicky when it came to your audio and video settings, but I have found the new Beta version much more stable.

 Bittorrent

  • Deluge - my favorite torrent client, has the right balance of features and simplicity

Remote Control

  • LIRC - configured this for my Windows Media Center remote and it integrated perfectly with XBMC & Boxee

Accessories

  • GNOME Do - an awesome tool much like Quicksilver on the Mac, only for the GNOME desktop
  • pyRenamer - a fantastic, simple tool for renaming lots of files quickly

This setup served me well on my Studio Hybrid HTPC and is performing equally well on my new machine. I frequently try different software packages, but these core programs are always present on my home theater box.

Friday
26Feb2010

Home Theater PC / Media Server Hardware

My first HTPC consisted of some leftover parts I had laying around integrated into a Shuttle XPC barebones system. My replacement for that system was a Dell Studio Hybrid which performed well, was relatively quiet, and used little electricity. The main limitation for both of these machines were their reliance on external hard drives for storage expansion. I wanted to build something with more storage and upgrade flexibility.

The following were my goals for my HTPC/media server build:

  • Storage Expandability - plenty of internal 3.5" slots so I can reuse my current content storage drives and add more as needed in the future
  • Adequate Onboard Video - although not as powerful as nVidia's or ATI's products, Intel's integrated graphics are fine for home theater use when paired with a decent CPU, they also use less power, and their Linux compatibility is generally better
  • Low Power - this system will be on 24 hours a day so it needs to be as efficient as possible
  • Quiet - this will sit next to my TV so it has to be as quiet as possible

Parts

The Antec Mini P180 has 5 internal hard drive bays, plenty of ventilation (120mm & 200mm fans) and sound reducing panels. While this case is much larger than either of my previous HTPCs, I was more than willing to sacrifice space for a better all-around system. The Intel BOXDB43LD motherboard has decent onboard graphics (an upgrade over the Studio Hybrid's X3100), plenty of SATA ports for storage expansion and a decent assortment of AV ports. The Celeron E3300 processor fits my requirements for a processor that is cheap, powerful enough, and uses relatively little electricity. In order to make this build as quiet as possible I decided to use a fanless CPU heatsink. This is possible because the thermal dissipation required by the Celeron E3300 (65W) is low, the heatsink I chose is fairly large, and it should get plenty of airflow from the two case fans even when they are run at their lowest setting.

Assembly

The build for this machine was fairly straightforward. The case has enough room to creatively route cables behind the motherboard to minimize air blockage. I mounted the DVD burner on the bottom because the top slot's depth is limited by the huge 200mm top fan. I also rotated the CPU's heatsink from its normal orientation to take advantage of the top fan's airflow.

In order to take advantage of the SPDIF connection on the motherboard I built myself a coaxial SPDIF bracket using an old PCI bracket, a female RCA jack, some single conductor shielded cable, and a 3 pin female header. All you have to do is wire the center of the RCA jack to the pin of the header that connects to the signal pin on the motherboard using the center conductor of the cable. Then connect the cable's shield to the outside of the RCA jack and the ground pin of the motherboard header.

Input Devices

I have used this control setup for a while now and it works very well for me:

  • Apple Wireless Keyboard - great Bluetooth keyboard
  • Microsoft Explorer Mini Mouse - the BlueTrack system is the only one I've found that works consistently well on surfaces around a living room (wood, fabric, etc.), it has great wireless range & battery life, and this mouse is just the right size (small but not too small)
  • Logitech Harmony remote (set to emulate Windows Media Center remote) - I use the Harmony 610 which isn't the most advanced Harmony remote, but it also isn't ridiculously expensive

Performance

Superficially this machine performs about the same as the Studio Hybrid. I noticed slightly less CPU utilization when playing videos. This could be attributed to the improved graphics processor, although the X4500 does not support CPU offloading of video decoding other than MPEG2.

Here's a performance comparison between this build (bold) and my Studio Hybrid (in parenthesis):

  • Boot Time - 0:55 (1:00)
  • CD Rip to FLAC time - 2:16 (3:41)
  • FLAC to MP3 Compression time - 1:16 (1:31)

Based on this info it seems that the Celeron E3300 is somewhat more powerful than the Core 2 Duo T5800 in the Studio Hybrid. Some of the performance difference could be attributable to the slower hard drive in the Studio Hybrid and the CD ripping performance was definitely affected by the much faster DVD drive in the HTPC.

 Here's the power usage I observed during some typical usage scenarios:

  • Idle - 42W
  • Play 720p Video - 51W
  • Play 1080p Video - 55W
  • FLAC to MP3 Compression - 64W
  • Average over a week - 45W

Previously I determined that my Studio Hybrid used an average of 27W over the course of a week. This is 40% less than the 45W used by my new HTPC, however it doesn't take into account the two external hard drives I had attached to the Studio Hybrid that are now mounted internally. When you add in the 5W each for the two hard drives that means the Studio Hybrid used only 18% less power than my new HTPC. That's pretty good considering this new system is faster and uses desktop instead of laptop components.

I am very happy that all of my attempts to keep this machine as quiet as possible were very successful. In terms of absolute volume its probably about the same as the Studio Hybrid, however, the fans on this system are much lower pitched and therefore blend into the background noise of the room a lot more. Another advantage is that when under heavy load the fans won't spin up and make more noise like they did on the Studio Hybrid because the default cooling is more than enough for the low level of heat generated by this system.

Saturday
06Feb2010

Timelapse Using Arduino Intervalometer

I finally got around to using my Arduino Intervalometer to make a timelapse video. With a big snowstorm coming I decided to use it to my advantage. I set my camera in Aperture Priority mode at F5 and had the intervalometer trigger it every 5 minutes for 3 hours.

In order to turn the photos into video I used Picasa, which has a great movie creation feature. The movie creator has a timelapse mode that allows you to set how fast you want the frames to last. I went with 1/8 of a second per frame since it makes the video fairly smooth while not blowing through the frames too fast. If I wanted to I could have reduced my timing interval by a third and made a video at the normal 24 frames per second for smoother video.

 

Friday
01Jan2010

Custom Bokeh

Some time ago I saw this project, which shows how you can make your own custom bokeh effect simply by placing a cardboard sleeve over a DSLR's lens. In the time off I had over the holidays I decided to try this technique myself. This is ridiculously simple to do and produces some pretty cool results.

All you need to create this effect is a lens with a wide enough aperature to create fairly shallow depth of field (the wider the better). I used my Canon 50mm F1.4 lens. For the sleeve I used some cardstock I had laying around, some tape, and a razor blade to cut out the tree shape. 

The photos below show the difference between a picture taken with the cardboard sleeve on and off. I used a Christmas tree in the background to create the small points of light necessary for this effect. Due to the relatively low light necessary for this type of photography a tripod may also be necessary, although these photos were taken hand-held.

 

Sunday
22Nov2009

Remote Camera Shutter & Focus Controls

In the process of building two intervalometers (analog, Arduino powered), I learned how easy it is to construct a remote trigger for a DSLR's focus and shutter controls. Both of those units featured manual controls for focusing and taking photos, but I wanted to build another separate project that would only feature that ability. This would allow the device to be much smaller and lighter.

For this build I used a 3"x2"x1" RadioShack project box, a 3.5mm stereo socket, and two momentary pushbuttons. In accordance with how my Canon Rebel XSi works, I wired the shutter trigger (red pushbutton) to the tip of the socket and the focus trigger (black pushbutton) to the middle contact. Then I wired the other side of both switches to the shield of the socket. I am a big fan of using a socket for a project such as this since I can now use a cable of any length or configuration as long as it has a 3.5mm plug on the end that plugs into the box. This is an incredibly simple build that works great and should come in very handy for all my remote triggering needs.