1.) First I downloaded and tweaked a tilable texture from www.cgtextures.com
2.) Now we're going to create shapes that will drive our heightmap. This is nice because I have full control over how my heightmap will turn out. You can take this example much further but for the sake of the tutorial I'll keep it simple.
Establish the big shapes:
Modify the diffuse texture (using levels and blending options) to get some finer details of the surface:
Just the bolts:
3.) We'll take the heightmaps we created and put them through xNormal. We'll get two normal maps that we can combine in Photoshop.
4.) The result when applied to our model: