AppleTV Upgrades & Modifications

Crystal HD Decoder Boards
Broadcom BCM970012 and BCM970015 "CrystalHD" (CHD) boards can be installed in the Apple TV's mini-PCIe slot as a replacement for the Broadcom BCM4321 wireless card. These boards enable OpenELEC to decode H.264 video content using a dedicated hardware decoder chip instead of software decoding H.264 using the main system CPU. The standard Apple TV box will handle software-decoding of SD and standard profile 720p content but the 1GHz CPU chokes on higher profile 720p and all 1080p content unless you spend many (many) hours painstakingly re-encoding videos with tools like Handbrake. Even then the CPU is typically running at 90-100% during playback and you can expect dropped frames and stuttering during fast panning shots. With a CHD board installed and decoding offloaded from the system CPU the Apple TV is capable of playing all but the most challenging of 1080p content with the system CPU load peaking around 45-50%.

The older spec full-height BCM970012 boards can be bought on eBay (usually from sellers in Hong Kong or Korea) for £11/$18 and the more recent BCM970015 cards for £29/$45. The BCM970015 supports more H.264 modes and is more efficient at decoding than the older BCM970012 card but both types mechanically fit in the Apple TV's full-height mini-PCIe slot (the BMC970015 is half-height but is usually shipped with a full-height adapter). In practice there isn't a significant difference in playback performance.

Gigabit USB Networking
The onboard Realtek 10/100 Ethernet chipset is theoretically capable of handling 1080p content but in reality unless you have a proper NAS system and you're streaming content from NFS shares you'll probably see the dreaded "buffering" on-screen frequently with files >10GB in size. To improve things a USB gigabit NIC is a good (and reasonably cheap) investment. There's usually a plentify supply of cheap £12/$19 ones on eBay. There is an element of "russian roulette" when buying from sites like eBay as very few USB adapters are advertised as being Linux compatible; only Windows and occasionally Mac OS X support will be mentioned. OpenELEC supports the ASIX 88178 chipset out of the box, and this chipset is used the vast majority of cheap USB adapters, but it cannot be guaranteed!

Wireless Networking
The internal Broadcom BCM4321 mini-PCIe wireless card supports 802.11b/g/n in 2.4GHz and 802.11n 5GHz networks. It is supported by the Linux bcm_sta driver which is included in the ATV image. The bcm_sta driver isn't the best performing driver but since you won't be playing content more challenging than standard profile 720p without a CrystalHD board any 802.11n network should work fine. If you're connecting to an 802.11g network SD content should stream okay but you're likely to experience problems with HD media that has larger file sizes as the bandwidth is rarely high enough and 802.11g networks often suffer when additional 802.11g devices (phones, laptops, etc.) connect to the same basestation. If you're using an 802.11b network you'll be able to "scrape" for locally stored media but streaming from a NAS isn't going to work. OpenELEC includes drivers and firmware for the main wireless chipsets from Realtek, Ralink, Atheros and most Broadcom devices so it's also possible to install a CrystalHD board and still connect to the internet or a NAS box by using an external USB wireless card. If you are going to stream from a NAS it is highly recommended to get a dual-band card that can operate in the 5GHz range (with a 5GHz capable router) as 2.4GHz devices often have single antennae and don't provide enough bandwidth for reliable streaming of HD content. The negative of 5GHz networking is that the wireless signal is easily blocked by walls so the Apple TV and wireless basestation probably need to be in the same room. If you can use Ethernet without animals or kids chewing the cable or your wife/girlfriend complaining it's always going to be a better option.

Booting from USB vs HDD vs SSD
OpenELEC can be run from a USB key or USB hard drive if needed and many people start this way as it allows you to experiment without the leap of faith required to wipe the AppleTV OS and install to the internal drive. However, most USB keys aren't so quick, particularly the smaller 1-4GB drives that people seem to find in a drawer for testing. If you are testing with a USB key it's a good idea to disable XBMC fanart as this requires reading of large files frequently from the drive and enable "dirty region" encoding to reduce the idle CPU load. Without fanart and with dirty regions enabled the XBMC GUI is noticably "snappier" to use. USB hard drives offer greater capacity but are typically slower than a flash memory key.

Installing OpenELEC to the internal drive will bring a speed boost. USB 2.0 has a theoretical bandwidth of 480Mb/sec (60MB/sec) which is comparable to the performance of the original 40GB Fujitsu MHW2040AT 4200rpm drive. In reality many cheap USB flash drives run around 50% of the theoretical maximum making the internal 40GB and faster Samsung HM160JC 5400rpm 160GB drives a higher performance option.

Best performance comes from an SSD, and for Apple TV users who hoard content on a NAS box it's an option worth considering as it's increasingly easy to find older and lower capcity SATA SSDs and small IDE/SATA adapters cheaply on eBay. SSD's will reduce boot times and make the XBMC GUI smoother to use. Equally if not more importantly, SSD's also run cooler and an SSD equipped Apple TV is typically 55-60&deg;C under normal use against 70-75&deg;C in a standard HDD equiped box; still warm to the touch (as the Apple TV casing acts us the primary heatsink) but considerably cooler than it was before.