FIRMWARE DESIGN