hardware init