angrycamel.com

There's a crack in the interweb

DVR-Like Screen Development Started

I started this weekend on a DVR-like screen to emulate the DVR screen from FiOS. This loads content from the library for movies and tvshows and attempts to match the same content organization that is seen in the FiOS system. That is date descending order but grouped by show into folders (single episodes are seen individually in the list).

Here are some reference photos:

Here are screenshots of my progress:


Program Options Screen Added to TVGuide

Last night I finished the control code and tedious skin work required to add a new “Program Options” screen to the TVGuide addon that will mimic the look and functionality of the FiOS Program Options screen available from various points throughout the EPG. The screen is accessible from the XBMC info button (“i” on a keyboard). When the info button is pressed, the information about the currently selected program will be presented on screen along with a menu of options that can be performed for that program.

Dynamic Menus and Program Info

The menu options and program information are different depending upon attributes of the program. The only attribute that currently influences the program info displayed is the category flag. If it is “Movie” then instead of episode information, the movie year is displayed. The menu is changes based upon this category check as well. If it’s an episode for instance, there is an option to record just the selected episode or to record the full series.

Category and Genre

I am already starting to regret how I captured the category of the program, so I may revisit that. I put in a decision tree when loading the XMLTV that processed each of the categories and if “Movie” was found in any of them, then that is what the whole category became. Instead, there should be a flag indicating whether it is episodic in nature then a secondary flag for determining if it is a movie, news, sports, kids programming, etc. The genre information is being lost by how I’m doing it now.


Improving Live TV on XBMC (my way)

My challenge with live TV on XBMC is familiarity for the wife and friends. I would like to kick the rental habit for the Set Top Box (STB) but poor user experience in XBMC gets in the way.

I currently pay over $50 a month in STB rental fees to Verizon for their FiOS service. It’s about time that I execute on this half baked plug-pulling plan and get some real use out of the HDHomeRun I purchased a few months ago. Unfortunately for that goal, the user experience for live TV on XBMC is so drastically different that FiOS that my wife finds it difficult to navigate around. To be honest, it’s not just her. The lack of a consistent experience when navigating from one addon to another, back to the library, then back to programs to choose an addon tests the patience of even a dedicated XBMC like myself. I’ve become quite familiar with the FiOS STB interface and I enjoy it, I just don’t enjoy the high price tag that comes with it, so maybe I can use it as a model to build something better in XBMC.

In order to achieve a better user experience, I intend to mimic the STB experience as best I can through an XBMC addon. Rather than starting from scratch, I have been getting familiar with and making some mods to the great addon from Twinther called TV Guide. His addon provides a base with existing XMLTV parsing, Electronic Programing Guide (EPG) rendering, and stream url support.

My approach to accomplishing this is a bit different than what I’ve seen before. Instead of focusing on a MythTV like setup where a backend is recording shows on a schedule using a tuner, I would rather use the HDHomeRun for live TV only, then use SickBeard and CouchPotato as my recording services. Using these services, running on a local system, the addon interface can be setup in such a way as to present series management from SickBeard as if it were series management from a FiOS DVR. The same would go for managing a recording of an upcoming movie on any given movie channel; just select the moving in the EPG and choose add to CouchPotato. The benefit with this approach is that the EPG becomes a discovery mechanism for content that can be immediately accessible (after a brief download period) from a DVR like interface, completely free of commercials.

Let’s take a look at how FiOS handles scheduling a series to be recorded in their DVR:

That was all accessible from the EPG by selecting an episode currently playing or in the guide for the future then hitting the record button. From there are options to “Tune to Channel”, “Record Episode”, “Record Series”, “Record Series with Options”, “Set Reminder”, and view “Upcoming Shows”. Selecting “Record Series with Options” brings up the above modal dialog to set the series recording attributes and once you select save, the newest episodes will just appear on your DVR with the newest at the top. This process could easily be imitated when setting a new show up in SickBeard from the EPG in the TV Guide addon. Presenting the latest shows with the newest at the top just like a DVR could be done by accessing the XBMC library by date as well.

The key is allowing the user to run the TV Guide addon and then stay there for all consumption of TV whether it be “recorded” stuff on the “DVR” (AKA: media downloaded by SickBeard or CouchPotato on a network PC then automatically updated in the XBMC library) or live TV from the EPG.

I’ve started working on this already and have made some progress getting the foundation in. Check out my TV Guide fork on Github. The following details the functionality introduced in the first commit:

Added support for categories as found in the XMLTV data, lookups and storage of additional meta data such as the TVDBId, TMDBId, season and episode
Added a TVDB library
Added a TMDB library
Added a SickBeard library
Added a CouchPotato library
Added columns to the programs table in the sqlite database to capture seriesId (tvdb), movieId (imdb), episode and season numbers, new flag, category.
Removed all of the test code sent yesterday that was replacing the behavior of a button
Added loading of the new program database columns when those database rows for each program in the source are inserted. (no matter the source type XMLTV, YOUSEE, etc, all will be able to use these features so long as the source parser is updated to pull the information from somewhere in the source data)
Enhanced the XMLTV parser to load the new program attributes (columns) listed above from the XMLTV data combined with additional sources such as TVDB & TMDB
Modified the epg viewer code to apply a color to the program based upon it’s category (dark green = sports, light green = news, red = movies, orange = kids). This actually mirrors verizon fios color coding.
The icons for each program in the EPG were swapped out while changing the category colors to use a vertical gradient instead of a horizontal one (stretches better horizontally, and again, matches the verizon fios interface)
Added “Record with SickBeard” option in the menu for a program. It will add the show to sickbeard with all prior episodes set to “skipped’
Added an icon to the info panel on the EPG view for showing the sickbeard logo when the show is managed by sickbeard
Added settings pages for each of the new libraries to configure the baseurl’s, api keys, and enable flag


Cutting the Cord – Part 1

If you’re anything like me, you’ve been watching the prices of cable go through the roof in recent years. To top it off, these DVR boxes and all the bells and whistles I thought I needed when I signed up add over 50% to my bill. I’ve long thought that with all of that content available on my server, I shouldn’t even need cable. So why do I still have it?

Two reasons.

Wife Acceptance Factor (WAF)
I can’t blame it all on the spouse, however the WAF is a major contributing factor in deciding what will live and what will die in our TV setup. It must be simple to use and have access to all of that nonsense programming you wouldn’t be caught dead adding to Sickbeard (not that you would tell the guys about at least). With all of the women’s talk shows, entertainment news, etc that get’s consumed by the woman of this household, the timeliness of a show is also understandably important to her.

Passive TV Consumption
The other reason why we still have cable is the lack of passivity with the typical media center setup like XBMC. I have to admit, I am quite content when surfing channels and catching shows on in the middle, hitting the guide button again to find a second best show, then flipping back and forth between them with the last button; continuously checking the guide for something better in the process. I enjoy discovering stuff that I would ‘t have otherwise sought out. That being said, I enjoy some shows that keep me on the edge of my seat too (Breaking Bad anyone?) and those get watched purposefully via Sickbeard or the DVR, but for the most part I am a passive experience kind of guy.


Taking a Second Look at Data Redundancy

A couple of weeks ago something bad happened with my file server at home. The power went out while we were not at home, so the server went down. Problem is, it never came back up. I have been troubleshooting it for the past couple of days and finally pinned the problem down to one of the SATA drives having gone bad. Once it was removed and the OS reloaded, I was back in business. Only I have now lost everything on that drive.

The drive that holds our photos right now has years worth of digital pictures on it. What if it was the drive that had failed? What if we would never be able to see those pictures again and relive those memories? Well guys, if there is one way to get your wife to agree to buying some cool server equipment, then telling her that you may have lost your honeymoon pictures due to a drive failure is it.

Data redundancy has never really been a top priority for me. However, I work in IT so you’d think I’d be smarter about these things, but the fact of the matter is I just took for granted that I had never had the unfortunate event of a drive failing on me. I had been wanting to do a raid setup in that geeky I wanna do something cool with blinking lights and a server rack in my basement kind of way for a while, but the last time I bought a hard drive they were around a dollar a gig. I just couldn’t see spending hundreds of dollars on redundancy at the time. With times changing and my wife and I becoming increasingly dependent on this file server to store things that are important to us, I have decided to reconsider how much I would spend to ensure that the data stored on it can’t just disappear over night.

So, how much would it really cost to prevent that scenario from ever playing out? Its with that question on my mind that I started checking prices of the latest and greatest hard drives. I am planning a RAID 5 configuration with 4 drives likely with a plan to add a fifth one day as we get low on space.I’m finding that the prices have really come down a lot lately on hard drives, making this much easier to handle financially.

I have looked at a few different hard drives and sizes and broke down the pricing for each below. I tried to get a number that I could use to measure all of them against each other and I came up with the cost per gig after redundancy. This along with the total investment and the actual amount of storage that price would provide me are the things that I used to decide what drive to purchase.

Manufacturer Capacity Actual Capacity Cost Per Drive No. of Drives Total Actual Capacity (Redundant) Cost Per Gig (Redundant)
Western Digital 400 GB 372 GB $80 4 960 GB $0.333
Western Digital 400 GB 372 GB $80 5 1280 GB $0.313
Samsung 500 GB 465 GB $100 4 1395 GB $0.287
Samsung 500 GB 465 GB $100 5 1860 GB $0.269
Western Digital 750 GB 698 GB $140 4 2094 GB $0.267
Seagate 1000 GB 931 GB $250 4 2793 GB $0.358

As you can see there are a lot of attractive options. For me however, I have narrowed it down between the “cheapest” solution (WD 400 GB – $320) or the “best bang for my buck” (WD 750 GB – $560) solution. On one hand I can get almost 1TB of redundant storage for only $320 but I get over 2TB of redundant storage for only $140 more. But, do I really need 2TB of storage? Of course!

Thinking back, I had just about 1TB total of data before this drive failed, and that was with no redundancy. So the 2TB option would be a significant upgrade for us in both the storage space and the peace of mind. I think I’ll go with that. I’ll likely move the DVD burner down to the server too and burn a monthly backup disc of important files. Hopefully I will never have to worry about loosing important data again.

So bottom line, the final price for a 2TB RAID 5 configured file server using an old 1.8ghz Pentium to house it and a moderately priced RAID card capable of hardware RAID 5 will run me about $610. Not bad considering what that would cost if you bought a commercial file server with similar specs.

For the RAID card I am bidding on a 4 port card capable of RAID 5 on EBay right now. Here is the newegg product page for it:
LSI 1504064 64-bit 66 MHz PCI SATA MegaRAID 150-4 Kit 4 Port 64MB RAID 0/1/5/10 – Retail


IEBus Controller is now on Sourceforge!

I have put the firmware on sourceforge.net under a project aptly named, IEBus Controller. Its getting to the point where I cannot work on it enough nor make enough progress to warrant keeping it all to myself. This doesn’t mean that I wont be working on the project, but it does mean that I welcome anyone who is willing to help out in making this project a reality.

Sourceforge.net Logo

I decided to do this when I realized that a couple others are working on their own versions of the project and repeating work that I had already done. It’s simply not fair for me to hold out on my progress. I was hoping to get everything perfect then release it all at once, but I think at this point its best that I get more people in the trenches with me to help figure out the problems.

Sourceforge.net IEBus Controller Preview

So checkout the project page over at the Sourceforge project page. There is no release just yet, but those wishing to work on the project with me should pull down the latest from the Subversion server. If you send me a message, I can give you access as a developer so that you can commit changes. You will need an account with Sourceforge.net in order for this to work. Also, I suggest tortoiseSVN, it has shell integration and has been very easy for a novice SVN user, like myself, to get used to.

IEBus.c Preview


IEBus Controller Prototype Board

I just finished putting together the prototype board with the relays all working as they should be. Its a nasty looking beast of a prototype board but its working. I will be testing out the features of switching the video and disabling the IEBus signal from reaching the navigation computer while in “PC” mode tomorrow afternoon. For now I have posted some pictures of the board below. Enjoy!

IEBus Controller Prototype Board

IEBus Controller Prototype Board

IEBus Controller Prototype Board


Powered PnP Install Diagram of Dom’s Video Converter

Here is a diagram that I put together to show how I used both the 20 pin and the 8 pin (C) connector together to form a completely plug and playable solution for Dom’s video converter box.

(Both plug N play harnesses featured in this diagram are available for sale through this website. Email robbienewton (at) gmail (dot) com if you are interested)

Powered PnP Install Diagram of Dom’s Video Converter


16 Pin Connectors

Just thought it worth mentioning that if anyone needs any of the 16 pin connectors, I have a few available. It came to mind because a guy by the name of Garrick Lau sent me an email asking if I had any I could sell to him. He is working on completely replacing the navigation system in his 04 NSX! He needed the 16 pin for the XM connection that includes XM traffic.

If you would like to check out Garrick’s project page, click here.