Joker TV hardware functional testing with OpenHTF
Functional Testing of PCBs is always used as a final manufacturing step. Functional testing provides making a decision to go or not to go on finished PCBs.
Manual functional testing of one Joker TV assembled PCB takes about 5 minutes. I have decided to automate this process with open-source hardware testing framework (OpenHTF). PCB functional testing time is shrunk to 1 minute. This is 5 times less than manual functional testing and less error prone (no human factor). Below, I will describe this process in details.
Functional testing stand overview
The entire testing process video
Testing stand components
DUT (Device Under Test)
Joker TV fully assembled PCB with attached serial number sticker.
Altera ByteBlaster
Joker TV assembled PCB doesn’t have any firmware on flash. Before testing we should write firmware to flash using JTAG interface. I have prepared OpenHTF routine that writes Altera FPGA firmware by using command line utility quartus_pgm. Free Quartus Linux edition should be installed on the laptop.
Laptop with Ubuntu Linux and OpenHTF
Web based GUI interface of OpenHTF makes functional testing easy to operator. No special Linux knowledge is required.
DVB-S2 and DVB-T modulators
We simulate real Satellite (DVB-S2) and Terrestrial (DVB-T) signals. So, we can test DUT (Joker TV) as it works in real end-user environment.
Multimeter with COM port
We should control voltage on satellite output. It should be about 18V. This power used to power LNB on satellite dish in real user environment.
COM port allows us to check voltage automatically inside OpenHTF routines. An operator should not control voltage manually.
Barcode (serial number) scanner
Scan serial number and start OpenHTF testing routines. Avoid human mistakes when manually entering DUT serial number.
I’m using simple $21 WoneNice USB Laser Barcode Scanner.
Source code and instructions
All developed OpenHTF routines for Joker TV testing is committed to hwtest subfolder of the main libjokertv repository. You can browse it here.
Use following command to start OpenHTF web interface:
git clone https://github.com/aospan/libjokertv.git cd libjokertv/hwtest python openhtf-jokertv-frontend.py
Scan serial number into “DUT ID” field. Hardware testing process will start. If all stages (phases) are successful, you should see following screen:
Conclusion
Functional testing is very important in hardware mass production. It can takes a lot of time and will cost you money because factory can charge you by working time. In this case, automation of functional testing is the best option. In my case (Joker TV), I have decreased required time from 5 to 1 minute (5 times less). This is a good result!
Happy New Year! Thanks for the post. I have a few questions:
1) Is OpenHTF also a good framework to test USB CCID hardware devices ?
2) How about device with NFC ?
3) Is there anything similar to OpenHTF ?
Thanks!
-Oscar