1/1/2014— Jia Huang
In a few months we’ll be shipping over 1k Tessels and 4k modules. We want to make sure that every product we ship will work, so we shipped some test benches to our module manufacturer in China.
These are the test benches for the RFID, Servo, Climate, nRF24, MicroSD, Camera, Relay, and GPS modules. Try and guess which are the ones we did closer to the deadline…
The majority of the test benches are just Tessels. The Tessels can switch between multiple module tests so that our manufacturer can keep testing modules even if a few test benches break. For some modules we ended up using Arduinos since the C to JS firmware ports aren’t done yet.
In all of the tests I tried to aim for the following:
- Tests should cover core functionality
- Tests should have clear instructions
- Test benches should have minimal configuration
Testing core functionality
Each module test goes through a core use case (or multiple use cases), and tries to approximate how an end user would use the module.
For example, our RFID module testbench has a 3 inch standoff with an RFID card taped to the top.
If the module cannot detect from this distance, than the module has failed.
Similarly, the nRF24 module goes through sending and receiving messages to another nRF24 module. The camera takes a picture and the test is to check whether or not the image is good.
I tried to make the test benches as consistent and self explanatory as possible. All tests pass with either Green or Blue LEDs and fail on Red. Ideally, we would like these tests to be able to be run years from now if needed.
I originally wrote the instructions in English, but then I realized that the tests are going to be run halfway across the world by workers whose primary language is Chinese. Most Chinese manufacturers have an English speaking rep or project manager, but the level of English proficiency varies pretty drastically. So I ended up translating the instructions to Chinese as well and having both on there.
For some of our modules, it’s annoying to set up the test: the servo module can connect up to 16 different servos, and each servo takes 3 pins (ground, power, and signal). Testing all this by plugging in a servo into each position would take a long time. Relay testing takes a similarly long time since the tester needs to connect wires to the module.
For these kinds of tests we made module testing PCBs designed to test all the pins at once. So instead of plugging in 16 different servos, the test can use just 1 Servo test PCB. This also has the added benefit of being able to see a clear pass/fail (is the LED on?) versus having to keep track of 16 servos.
Coming in January
We still have 5 more modules to get into manufacturing in early January: Ambient, IR, Bluetooth, GPRS, and Audio.
Back to work.