Specifically, what devices do you use? (e.g. FPGA, Arduino, National Instruments board) How do you program that device? What are the essential features provided by this setup? And how could this be generalized into a device/type API?