The Power of Raspberry Pi–MythTV tweaks and techniques

This post continues my previous ramblings about using the Raspberry Pi aboard the boat.  To start this story at the very beginning, go to this post. To go to the previous post in this series, go here.

Screenshot of MythWeb running on Raspberry Pi 2

Now to discuss some lessons we have learned about using our RPI-2 with MythTV aboard Schooner Mahdee to record over-the-air TV broadcasts for later viewing: Why record when so much is available instantly over the Internet?  Four reasons:

  • we are often anchored where Internet access is unavailable, or the speed is too slow to stream video;
  • we pay for high speed (4G) access per gigabyte;
  • broadcast HDTV provides an effectively free source of additional bandwidth and the HDTV programming is often many times much higher resolution than via Internet streaming;
  • those shows can be saved on a hard drive for later viewing anywhere and anytime.

Stunningly beautiful full 1080 HDTV programming is often broadcast and can be saved for later viewing on a big vibrant HD computer monitor–even in places with no Internet at all.  Those very high resolution shows consume around 5GB per hour.  If using our 4G hotspot, at that rate, our entire monthly Internet bandwidth for work and pleasure is equivalent to a couple of HDTV movies.  By comparison, in some locations, we can record HDTV shows around the clock for free–an incredible deal!  In practice, each 24 hours of saved H-264 encoded HDTV recordings exceeds our total Internet bandwidth usage for the entire month. Our only cost is for the hard drives and each $150 hard drive can save thousands of shows and take up less space on the boat than a small paperback novel.  So, even when we could stream videos over the Internet, we rarely do.

Since we obviously travel a lot, our settings for MythTV are not set and forget–in contrast to more stationary users.  We use Antenna Web in each new location to determine where HDTV transmitters are relative to us and how well we can expect to receive different stations.  We have both an omni-directional and a directional gain antenna to choose from.  Spinning around on a single anchor makes the directional antenna unusable, but if the boat is fixed in orientation with multiple anchors or shore-tie, we can use it to increase reception of more distant HDTV stations.  Sometimes we can get great reception with the antenna below decks in a stealth mode.  For more challenging stations, reception may require an antenna be raised on a flag halyard–not so stealthy.

We have an inexpensive account at Schedules Direct which interfaces very well with MythTV.  With an Internet connection, we generally upload new schedule data every day or two.  There is limited (just the next 12 hours) program schedule data provided for free by the stations themselves on the transmitter frequency using EIT, but scheduling works best with longer range data and Schedules Direct provides about two weeks of scheduling. That data also includes lists of actors and other credits as well as descriptive information which we retain with our recordings and in a separate custom Ruby-on-Rails (RoR) web interface and database.

Schedules Direct also allows us to have four different locations in our profile.  Thus, we have one for each major city area we typically visit.  In those profiles, we can remove stations we do not want–such as those without English language audio–and our custom settings will persist until our next visit to that area.  I am constantly amazed at the number of over-the-air broadcast stations we can receive even when we are far from a metropolitan area.

With our large MythTV database of over 10,000 previously recorded shows, nearly 100 channels of available broadcast programs in many locations, and large number of rules and priorities about what we want to record, it can take several minutes after starting the MythTV back-end for it to figure out what to record. During that time, the MythTV front-end and MythWeb browser interface running on the RPI-2 will will show no scheduled recordings. Whenever possible, I use the command-line mythtv-status to see what is in the recording queue rather than running the more resource-intensive front-end. Even mythtv-status can take several minutes to complete and will show that nothing will be recorded until all of the data has been parsed and prioritized by the MythTV back-end.  Loading new schedule data from Schedules Direct can take nearly 20 minutes to process on our–admittedly overloaded–RPI-2. Sort of like sailing tack to tack to get to one’s ultimate destination, patience is required and one can not expect a newly added show to be put into the recording queue right away. I plan for the RPI-2 to take up to five minutes before a new recording is reflected in the queue.

With an Internet connection, MythTV gets program meta data for each recording so that we have images of cover art–which makes the front-end display nicer.  MythTV can also flag commercials so that they can be easily skipped during replay or even removed from the file entirely.  Commercial detection is very resource intensive, so we set MythTV on the RPI-2 to not do any commercial detection on the recordings. With this setup, the RPI-2 is also very useful as a desktop computer for me to browse the Internet using Firefox/Iceweasel, read and write email and other miscellaneous things all while displaying current weather data and monitoring anchor holding.

One glitch that I have encountered is that the MythTV startup script does not always work in Debian Jessie due to incompatibility with SystemD. The symptom is that the startup script completes with no errors, but the back-end is not running–starting and restarting MythTV using has no effect. The problem seems to be related to the init-functions command. Adding the following just before that call in /etc/init.d/mythtv-backend as follows helped:

_SYSTEMCTL_SKIP_REDIRECT=true
. /lib/lsb/init-functions

Then that fix failed so I am now manually starting MythTV using the old InitV command:

/etc/init.d/mythtv-backend start

It is also good to ensure that MythTV is not running before starting it and to make sure there is no file named /var/run/mythtv/mythbackend.pid. First kill hung processes and then check for the pid file and delete it if necessary before staring MythTV using the above command. Since I rarely reboot the RPI-2, manually starting MythTV works fine and the InitV command is trouble free.

Another glitch is that the HD HomeRun recordings sometimes fail leaving MythTV thinking the recording is still happening. After upgrading the HomeRun to the latest firmware, this situation happens less often. Still, every few days I need to stop MythTV and wait for all the threads to be killed and then restart MythTV.

Next, I will cover some system-wide optimizations that we have made that make MythTV more reliable given the highly loaded RPI2 we run it on.

Addendum: this conversation continues on our technology-focused website Windward Ho!

Memorial honoring Ted Pike in Port Townsend

Ted Pike

Tomorrow afternoon in Port Townsend, Washington, there will be a memorial service to honor the life of Ted Pike. He passed away on Monday August 24, 2015, unexpectedly after a short illness. He was 65. He touched many lives around the country–and around the world–and will be missed by all who knew him.  He enabled countless boatbuilders, DIY and professional alike, to follow their dreams to build and restore as well as to sail.

In our case, he helped us to bring Schooner Mahdee back to her former glory  by providing us with the important–and so hard to find–top quality wood for her planking, floors, frames, and deckbeams. During the project, he called to chat and check on things and he visited us in San Diego to check on the progress of our rebuild and gave us cheerful and enthusiastic praise–as well as advice–as we progressed with the large project.  Only towards the end of the rebuild as she was going back together did Ted exclaim–I KNOW this boat, it’s Privateer, and then told us a number of stories about Robert Goss and the days Privateer spent (in the 1970’s) in Port Townsend.  Ted thus became an important part of our gathering information about Mahdee’s history, too.  We’ve sent countless folks with an old boat in need of good lumber over to Edensaw Woods: knowing that Ted would help them along the way with just the right thing.

Anna Nasset wrote in Three Sheets Northwest Fair Winds To Our Captain Ted Pike

There are some lives that are impossible to sum up in words, and Ted’s is one of them. His reach was as vast as his love and zest for life. There is a giant “Ted” shaped hole in the hearts of thousands. I will try to honor our dear friend — the great ancient mariner, mentor, father, husband, friend and best hugger in the world — in all his glory.

read the full story here including details on the memorial service

We will be forever thankful that Ted Pike came into our lives, with a pile of wood, and will remember his boatbuilding and sailing stories.  He will be missed.

Provisioning? bring what you need to make some nondairy tapioca with simple ingredients

I posted this a couple years ago but had a reminder when someone asked what foods do we provision with? Tapioca, most definitely is on the list of must-have-foods aboard. Old fashioned pearl tapioca, that is.

Here’s the recipe I use for non-dairy Tapioca pudding.

Ingredients:
1/2 cup small pearl tapioca (do not use instant tapioca)
3 cups “fake” milk of choice (e.g. almond, rice, coconut, soy)
1/4 teaspoon salt
2 eggs
1/2 cup of sugar
1/2 teaspoon of vanilla (or extract of choice)

Method

0 Pre-soak the tapioca pearls for at least 3 hours, but preferably overnight. If you don’t do this, it will take a long, long, long time for the pearls to become translucent as they should.

1 Combine tapioca, milk (I used Trader Joe’s unsweetened coconut milk), and salt in 1 1/2 quart pan on medium high heat. Stir until boiling. Simmer 5 minutes, uncovered at very low heat, adding sugar gradually.

2 Beat the eggs in a separate bowl. Mix in some of the hot tapioca very slowly to equalize the temperature of the two mixtures.

3 Return egg mixture to the pan with tapioca. Slowly bring mixture barely to a boil, stirring constantly. Reduce heat and stir several minutes at a low simmer, stirring constantly until you get a nice thick pudding consistency. Cool at least 15 minutes. Add vanilla. Serve either warm or chilled.

Makes 4-6 servings.

Google Analytics Alternative