The Raspberry Pi Gets A HAT
The Raspberry Pi Gets A HAT
Written by Harry Fairhead   
Saturday, 23 August 2014

The latest version of the Raspberry Pi single board computer has a new feature that allows it to use expansion cards more intelligently. The new boards are called HATs, Hardware Attached on Top, and they might just revolutionize things you can do with a Pi.


Graphic: Adafruit

If you are planning to use the Pi for any sort of physical computing you generally need to set up extra hardware in the form of an expansion card. Usually this is easy from the point of view of the hardware - you just plug it in. The software is often more difficult requiring drivers to be installed and often configured. This extra step is something that can be off-putting for beginners and it can waste time even if you know roughly what you are doing. 

The problem is that the original model A and B Raspberry Pi's don't really have a facility for expansion boards, they simply have a 26-pin ribbon cable connector to the GPIO. Over time different companies have built expansion boards that plug directly into the connector and sit on top of the Pi, making an electronic sandwich. 

When the model B+ was announced the biggest change was the addition of a few extra pins to make the GPIO connector a 40-pin PCB header. The new connector is backwards compatible in that the first 26 pins are identical to those on the model A and B. In addition two new pins - ID_SC and ID_SD are provided to allow the connection of a serial EPROM. This allows the board to be identified and the Pi can load the drivers needed for it. In other words. as long as the manufacturer designed the expansion board correctly. it can be completely autoconfiguring. 




The Raspberry Pi Foundation has issued the specifications that boards should follow to be compatible with the new facilities. As already mentioned, such boards are called HATs, Hardware Attached on Top, which is a fairly contrived name. To be called a HAT the board has support the two new pins and have an EEPROM for ID, including information on the vendor, GPIO map and device tree. It also has to play nicely with the Pi's power supply and conform to the mechanical specification. The GPIO connector has to space the HAT at 10 to 12 mm away from the Pi's PCB and it is possible to use a surface mount connector that can reproduce the GPIO pins so that other HATs can be stacked - presumably a HAT stack. 

HATs only have to meet the minimum standard and there is plenty of scope for innovation and adding new features. 

So what about the model A and all the existing model Bs

Given that the connectors are backward compatible it should be possible to create HATs that work with the model A and B but, of course, without the ability to self configure. 


The layout for Adafruit's HAT servo board


As you might expect, first off the start line is Adafruit with the cleverly named - HatADay. So far the designs are prototypes but there is already a 2.2" TFT display, GPS, Servo and Arcade Pi Hat to look at and more promised. There is also a prototyping board that you can use with your own ID EEPROM to create custom HATs.

The idea that you can just buy a GPS, display and so on and simply plug-and-play to create a HATstack really does take the Pi into new territory and significantly simplifies the task of getting started with otherwise complex hardware.



Automatic Testing - Programmers Are Still The Problem

White box test generator tools can help you find bugs automatically by generating combinations of inputs that are likely to give the wrong answer. However there is a problem - how do you know when you [ ... ]

Google Capture the Flag 2017

Google has announced a Capture the Flag contest with an online qualification round lasting 48 hours taking place on June 17th and 18th. The top ten finalist teams will be invited to Goo [ ... ]

More News




blog comments powered by Disqus

Last Updated ( Saturday, 23 August 2014 )

RSS feed of news items only
I Programmer News
Copyright © 2017 All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.