Hardware detection