• Testing Tessel with Testalator

    Tuesday, May 13, 2014

    5/13/2014— Jia Huang

    We recently started a production run of 2.5k Tessels. When we put something in production, it’s not just a matter of telling our manufacturer to start placing components on boards. We also have to make sure that every Tessel we produce is programmed and tested, and that’s where Testalator comes in.


    Testalator is Tessel’s programming and test rig. It programs Tessel up with all its firmware and then makes sure the Tessel can operate to spec.

    The physical Testalator is made up of a few key parts:

    • A mechanical jig that holds the Tessel in place
    • A second Tessel that checks that all the pins on the Tessel being tested works.
    • A Raspberry Pi that hooks up to the jig, programs and checks Tessel, and then streams those logs online.

    The jig

    This is the physical setup required to connect all the pins of Tessel for testing. It involves around 60 pogo pins, 22 standoffs, and 2 cut pieces of acrylic that hold the Tessel in place. There’s also a few indicator LEDs showing the progression of the test.

    “Wow Jia, you should try Mechanical Engineering”, said no one. The clear flanges that held the Tessel in place were too loose at first so Eric “fixed” it with some hot glue.

    The Pi

    A Raspberry Pi operates the entire test. The jig connects to the Pi’s GPIO and USB ports. Testing & programming involves going through the following stages:

    • One Time Program (OTP) the board. This sets up the version of the board, and makes it boot from internal flash by default. We also stick on our custom bootloader so we can update the firmware later.
    • Put Tessel’s firmware on the board
    • Upload some JS to do a pin test
    • Upload some JS code while switching power sources
    • Connect to wifi and do a ping test

    There are some more checks in between each stage, but this covers most of the functionality of the board.

    Tessel tests Tessel

    One core part of Testalator is the pin test. The pin test is the test that checks to make sure that all the pins on the module headers (GPIO/SPI/I2C/ADC/etc) can operate as intended.

    We use a Tessel to do the pin test on Tessel. The Tessel tester is hooked up on the bottom of the jig using vertical headers:

    The Pi uploads some JS code to the Tessel being tested which starts up the pin test. After that, the two Tessels communicate for which test is commencing and what the expected output should be.

    Streaming test logs

    Testalator also streams all the test logs online as it operates.

    Since manufacturing is still done in Massachusetts and we’re across the country in Berkeley right now, these logs give us an easy way to see which tests have passed or failed, and which bench did the testing. We’ve found this pretty helpful in debugging any consistent failures during manufacturing. Using this, I can see which failure modes are happening often, ssh into the Pi, and fix the test remotely.

    The Testalators have programmed and tested about 100 boards so far, so there’s still quite a few more to go.

    Here’s to hoping everything goes according to plan.


    #jia huang #testing #hardware #testalator #tessel #technical machine #manufacturing #qa #quality control #firmware

August 2018

January 2018

July 2017

February 2017

November 2016

October 2016

September 2016

August 2016

July 2016

June 2016

April 2016

March 2016

February 2016

November 2015

September 2015

August 2015

July 2015

June 2015

May 2015

March 2015

February 2015

January 2015

December 2014

November 2014

October 2014

September 2014

August 2014

July 2014

June 2014

May 2014

April 2014

March 2014

February 2014

January 2014

December 2013

November 2013

October 2013

September 2013

August 2013

July 2013