XO 4 Touch Testing

From OLPC
Revision as of 21:26, 6 September 2012 by Wad (talk | contribs)
Jump to navigation Jump to search
  This page is monitored by the OLPC team.

This page describes the production test support provided with the touchscreen in XO-4.

Test routines are provided in Open Firmware and manufacturing-scripts for testing the various components of the touchscreen system, at various stages of manufacture. The touchscreen system consists of a microcontroller on the motherboard, an IR PCB which contains the IR transmitters and receivers, a flat flexible cable interconnecting the two, and a plastic lightguide which collimates the light to/from the LED sensors.

test name test-station (hex) Open Firmware manufacturing-scripts
IR PCB SMT 11 complete in q7a12 not started
IR PCB ASSY 12 complete in q7a12 in progress (Chia-Hsiu, zye.fth)
MB SMT 1 complete in q7a12 in progress (Chia-Hsiu)
MB FINAL 2 complete in q7a12 not started
Lightguide Tooling 13 complete in q7a12 not started
Sampled QA - not started not started


IR PCB SMT

This test is done to bare IR PCB boards, without a light guide. The code runs on XO-4 A2 or later motherboards.

The idea is to check for opens and shorts of the IR diodes and detectors, as well as proper mounting of the ASIC and connector on the IR PCB.

There should be no operator interaction with the IR PCB. They should simply be able to drop a board into the test fixture, press a button on the keyboard, and the screen says pass or fail with an appropriate background (red/green).

After testing is complete, the MSP430 should be placed into reset to allow for cable disconnect. The MSP430 should be rebooted for each test.

Implementation Guidance

  • requires Open Firmware Q7A12 or later,
  • TS tag need not be set,
  • activate the test with:
11 to test-station \ SMT
test /touchscreen
  • sample output (pass):
Connect IR PCB, press a key
Disconnect IR PCB, press a key
  • sample output (fail):
Connect IR PCB, press a key
Open and Short
    X Axis
         ( bit 47 )
         ( bit 51 )
         ( bit 53 )
         ( bit 57 )
         ( bit 59 )

    Y Axis
         ( bit 36 )
         ( bit 40 )
         ( bit 42 )

Disconnect IR PCB, press a key

/touchscreen selftest failed. Return code = 8

IR PCB ASSY

This test is done to IR PCB assemblies, including a light guide and bezel. The code runs on XO-4 A2 or later motherboards in a production line situation, using a test fixture to connect to the bezel assembly.

The idea is to check for proper assembly of the lightguide and IR PCB, as well as proper lightguide and IR PCB operation.

They should simply be able to drop a bezel assembly into the test fixture, and press a button on the keyboard. They then need to pass a finger or stylus along two adjacent inside edges of the bezel to complete the test. Upon completion, the screen says pass or fail with an appropriate background (red/green). There should be an automatic abort of the test (w. fail) if the appropriate motion isn't detected within thirty seconds.

After testing is complete, the MSP430 should be placed into reset to allow for cable disconnect. The MSP430 should be rebooted for each test.

Implementation Guidance

  • requires Open Firmware Q7A12 or later,
    • includes a Forced LED Levels test,
    • tested with revision B IR PCB,
  • TS tag need not be set,
  • activate the test with:
ok test-ir-pcb-assy

MB SMT

This test is done to each bare laptop motherboards as part of SMT testing (TS code SMT). The code runs on XO-4 A2 or later motherboards.

The idea is to check for proper functioning of the touchscreen microcontroller and connector to the IR PCB.

There should be no operator interaction with the "known good" IR PCB. The operator should be able to drop a motherboard into the test fixture and power it on --starting the automatic test menu. When run the touchscreen test shall attempt to install firmware into the microcontroller, then attempt to communicate with the "known good" IR PCB. The test result should be indicated visually and the automated test stopped on failure.

Implementation Guidance

  • requires Open Firmware Q7A12 or later,
  • TS tag must be SMT,
  • touchscreen microcontroller firmware must be flashed,
    • using: " u:\zforce.hex" $flash-bsl
    • progress will be displayed (svn 3239 or later),
    • it takes about 58 seconds,
    • the microcontroller is available for testing immediately without a power cycle,
    • flashing of microcontroller is implemented by Quanta in manufacturing-scripts:cl4/smt/cl4.smt flash-nn-fw
  • check for proper functioning of the touchscreen microcontroller and connector to the IR PCB with:
test /touchscreen
  • possible failures are:
    • no response to reset, the microcontroller did not make the data ready signal active within 250 ms of the reset signal being made inactive,
    • no response on bus, the microcontroller did make the data ready signal active, but did not respond to I2C bus signalling,
    • failed to configure, the microcontroller stopped responding during the configuration process,

MB FINAL

This test is done to each assembled laptop as part of final testing after assembly (TS code FINAL). The code runs on XO-4 A2 or later motherboards.

The idea is to check for proper functioning of the touchscreen microcontroller, IR PCB/lightguide assembly, and the connection between the two.

The operator will power the laptop on --starting the automatic test menu. When run, the touchscreen test shall establish communications with the microcontroller. Then it should wait for the operator to run their finger/stylus along two adjacent edges of the light guide. The test result should be indicated visually and the automated test stopped on failure. If no operator input is detected in a fixed amount of time (thirty seconds), the test should be stopped indicating failure.

Implementation Guidance

  • requires Open Firmware Q7A12 or later,
    • tested with revision B IR PCB,
  • TS tag must be ASSY,
  • activate the test with:
ok test /touchscreen

Lightguide Tooling

This test is done to light guides, mainly during tooling development, but also for quality control once production has started. The code runs on XO-4 A2 or later motherboards in a production line situation.

The idea is to check for proper operation of the lightguide, using a known good IR PCB.

They should simply be able to attach a bezel assembly to the motherboard, and press a button on the keyboard. No interaction with the lightguide is required during the testing. Upon completion, the screen indicates pass or fail, but also provides numbers reporting the performance of the different optical paths.

"We need a GUI program to provide a straightforward visual indication of whether the IR PCBA is working or not. A simple and effective visual output would be just displaying: (1) Red screen with the word "FAIL" in the center when equal to or greater than one (1) error non-connection of transmission channel. (2) Green screen with the word "PASS" in the center when zero (0) error occurs."

Implementation Guidance

  • requires Open Firmware Q7A12 or later,
  • TS tag need not be set,
  • activate the test with:
ok test-lightguide .

Sampled QA

This test is done to assembled laptops for quality control once production has started. The code runs on XO-4 A2 or later motherboards.

The idea is to check for proper operation of the touchscreen, including specific light guide performance.

They will have to power the unit up to Open Firmware, then manually execute two or more tests:

  • The lightguide quality test, printing out the perceived performance of the lightguide
  • A linearity test, where they use a straight edge and a stylus, and the "max error" is computed

Field Repair

This test is done to units suspected of having a problem with their touchcreen:

test /touchscreen

If a problem is found which can be traced to a particular component (IR diode, IR LED, or connector), it should be clearly identified.

Miscellaneous

The following tests may also be available:

select /touchscreen
scribble  \ draw on the screen
boxes     \ change the box colour by touching
watch-fss \ show axis photodiode levels with a fixed IR LED level
watch-fll \ show axis photodiode levels with automatic gain control