XO 4 Touch Testing: Difference between revisions
(49 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
This page describes the production test support provided with the touchscreen in [[XO-4]]. |
This page describes the production test support provided with the touchscreen in [[XO-4]]. |
||
Test routines are provided in [[Open Firmware]] 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 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. |
||
==IR PCB SMT== |
==IR PCB SMT== |
||
Line 11: | Line 12: | ||
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). |
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 |
''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''' |
|||
select /touchscreen |
|||
* requires Open Firmware Q7A12 or later, |
|||
0 to faults test-os |
|||
* TS tag need not be set, |
|||
faults 0= if green-screen else red-screen then |
|||
* activate the test with: |
|||
touch-rst-gpio# gpio-clr |
|||
11 to test-station \ SMT |
|||
key drop |
|||
test /touchscreen |
|||
* sample output (pass): |
|||
Connect IR PCB, press a key |
|||
Open and Short |
|||
X Axis |
|||
Y Axis |
|||
Disconnect IR PCB, press a key |
|||
ok |
|||
* 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 |
|||
ok |
|||
==IR PCB ASSY== |
==IR PCB ASSY== |
||
Line 30: | Line 60: | ||
automatic abort of the test (w. fail) if the appropriate motion isn't detected within thirty seconds. |
automatic abort of the test (w. fail) if the appropriate motion isn't detected within thirty seconds. |
||
''After testing is complete, the MSP430 should |
''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''' |
|||
* can be done now with revision A IR PCB if the finger or stylus is omitted: |
|||
* requires Open Firmware Q7A12 or later, |
|||
select /touchscreen |
|||
** includes a Forced LED Levels test, |
|||
0 to faults test-fss |
|||
** tested with revision B IR PCB, |
|||
faults 0= if green-screen else red-screen then |
|||
* TS tag need not be set, |
|||
touch-rst-gpio# gpio-clr |
|||
* activate the test with: |
|||
key drop |
|||
ok test-ir-pcb-assy |
|||
* waiting on revision B IR PCB for implementation: |
|||
select /touchscreen |
|||
0 to faults test-edges \ not yet implemented |
|||
faults 0= if green-screen else red-screen then |
|||
touch-rst-gpio# gpio-clr |
|||
key drop |
|||
==MB SMT== |
==MB SMT== |
||
Line 54: | Line 78: | ||
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. |
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, |
* TS tag must be SMT, |
||
* touchscreen microcontroller firmware must be flashed, |
* touchscreen microcontroller firmware must be flashed, |
||
Line 61: | Line 86: | ||
** it takes about 58 seconds, |
** it takes about 58 seconds, |
||
** the microcontroller is available for testing immediately without a power cycle, |
** 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: |
* check for proper functioning of the touchscreen microcontroller and connector to the IR PCB with: |
||
test /touchscreen |
test /touchscreen |
||
* possible failures are: |
* 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 to reset'', the microcontroller did not make the data ready signal active within 250 ms of the reset signal being made inactive, |
||
** '' |
** ''failed to boot'', 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, |
** ''failed to configure'', the microcontroller stopped responding during the configuration process, |
||
** ''timeout'', the microcontroller did not respond within the expected time to one of the several operations; status, initialise, set resolution, activate, and deactivate. |
|||
==MB |
==MB FINAL== |
||
This test is done to each assembled laptop as part of |
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 idea is to check for proper functioning of the touchscreen microcontroller, IR PCB/lightguide assembly, and the connection between the two. |
||
Line 75: | Line 102: | ||
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. |
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. |
||
Also, a linearity test shall ensure that a stylus drawn along a straight edge will generate data with a minimum of departure from the line. The test shall not proceed until the linearity meets criteria, prompting the operator to repeat the attempt. |
|||
* waiting on revision B IR PCB for implementation: |
|||
test /touchscreen |
|||
'''Implementation Guidance''' |
|||
* activate the adjacent edges test with: |
|||
ok 2 tsts |
|||
* activate the linearity test with: |
|||
ok select /touchscreen |
|||
ok mb-final |
|||
==Lightguide Tooling== |
==Lightguide Tooling== |
||
Line 85: | Line 118: | ||
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. |
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." |
|||
diag-mode test /touchscreen \ gives pass fail |
|||
'''Implementation Guidance''' |
|||
* requires Open Firmware Q7A12 or later, |
|||
* TS tag need not be set, |
|||
* activate the test with: |
|||
ok test-lightguide |
|||
==Sampled QA== |
==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 |
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. |
The idea is to check for proper operation of the touchscreen, including specific light guide performance. |
||
Line 103: | Line 143: | ||
If a problem is found which can be traced to a particular component (IR diode, IR LED, or connector), it should be clearly identified. |
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== |
|||
Additional diagnostics can be used. |
|||
=== Scribble === |
|||
[[Image:1434602804.png|thumb]] |
|||
This draws each ''down'' or ''move'' event as a 3x3 graphic dot. Press any key to exit. |
|||
select /touchscreen |
|||
scribble |
|||
=== Boxes === |
|||
[[Image:1434604745.png|thumb]] |
|||
This draws a grid of red boxes and begins listening for touch events. Each ''down'' or ''move'' event clears a box to green. Once all boxes are green, the test exits. Boxes also exits if 30 seconds have elapsed, or if a key is pressed. |
|||
select /touchscreen |
|||
boxes |
|||
=== Watch Fixed Signal Strength === |
|||
[[Image:1434603781.png|thumb]] |
|||
select /touchscreen |
|||
watch-fss |
|||
This draws a cross of blocks. The vertical set represents the left and right edges. The horizontal set represents the top and bottom edges. |
|||
Each block represents a signal path from an IR LED to a photodiode. The IR LEDs are driven with a fixed transmit power. The brightness of each block represents the received signal strength. A small white dot in the middle of the block means the signal strength is zero. |
|||
There should be no small white dot blocks unless a finger or other obstruction is present. |
|||
The brightness of the blocks should not change unduly with flexing. |
|||
The brightness of the blocks need not be consistent across the axes. |
|||
Press u or d to change the transmit power. |
|||
Press q or escape to quit. |
|||
=== Watch Forced LED Levels === |
|||
select /touchscreen |
|||
watch-fll |
|||
This draws a cross of blocks. The vertical set represents the left and right edges. The horizontal set represents the top and bottom edges. |
|||
Each block represents a signal path from an IR LED to a photodiode. The IR LEDs are driven with a transmit power sufficient to achieve a useful signal. The brightness of each block represents the received signal strength, ''at the moderated transmit power''. A small white dot in the middle of the block means the end to end loss was too great. |
|||
There must be no small white dot blocks unless a finger or other obstruction is present. |
|||
The brightness of the blocks should not change unduly with flexing. |
|||
The brightness of the blocks should be consistent across the screen. |
|||
Press any key to quit. |
|||
==Reprogramming the Neonode Firmware== |
|||
Display the firmware version like this: |
|||
ok select /touchscreen |
|||
ok show-version |
|||
=== XO-4 C1 or later, with Q7B11 or later === |
|||
The Neonode firmware will be upgraded automatically by Open Firmware following an Open Firmware upgrade, unless version 0.0.0.9 or earlier is present. To step over this limitation, use the command |
|||
ok update-nn-flash |
|||
=== XO-4 C1 or later, with Q7B05 to Q7B10 === |
|||
The Neonode firmware will be upgraded automatically by Open Firmware following an Open Firmware upgrade, up until version 0.0.0.9. |
|||
=== XO-4 B1, with Q7B05 or later === |
|||
The Neonode firmware may be upgraded to the version included with Open Firmware, by typing: |
|||
flash-nn rom:\nn.hex |
|||
The Neonode firmware may be upgraded by placing the new firmware on a USB key, and typing: |
|||
flash-nn u:\firmware.hex |
|||
Replace firmware.hex with the name used for the firmware on the USB key. |
|||
=== XO-4 B1, with Q7B04 and earlier === |
|||
The Neonode firmware may be upgraded by placing the new firmware on a USB key, and typing: |
|||
" u:\firmware.hex" $flash-bsl |
|||
Replace firmware.hex with the name used for the firmware on the USB key. The space between the quote and the u is essential. |
|||
=== Firmware Library === |
|||
The library of touchscreen firmware is at |
|||
* http://dev.laptop.org/pub/firmware/nn/ |
|||
Several older versions are available for specific hardware: |
|||
* XO-4 B1 clear light guides should use 0.0.0.4, unless linearity is not a concern, in which case use the latest, |
|||
* XO-4 B1 dark light guides should use the latest, |
|||
* XO-4 C1 and later should use the latest, |
|||
[[Category:Hardware]] |
[[Category:Hardware]] |
Latest revision as of 05:21, 18 June 2015
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.
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 Open and Short X Axis Y Axis Disconnect IR PCB, press a key ok
- 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 ok
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,
- failed to boot, 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,
- timeout, the microcontroller did not respond within the expected time to one of the several operations; status, initialise, set resolution, activate, and deactivate.
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.
Also, a linearity test shall ensure that a stylus drawn along a straight edge will generate data with a minimum of departure from the line. The test shall not proceed until the linearity meets criteria, prompting the operator to repeat the attempt.
Implementation Guidance
- activate the adjacent edges test with:
ok 2 tsts
- activate the linearity test with:
ok select /touchscreen ok mb-final
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
Additional diagnostics can be used.
Scribble
This draws each down or move event as a 3x3 graphic dot. Press any key to exit.
select /touchscreen scribble
Boxes
This draws a grid of red boxes and begins listening for touch events. Each down or move event clears a box to green. Once all boxes are green, the test exits. Boxes also exits if 30 seconds have elapsed, or if a key is pressed.
select /touchscreen boxes
Watch Fixed Signal Strength
select /touchscreen watch-fss
This draws a cross of blocks. The vertical set represents the left and right edges. The horizontal set represents the top and bottom edges.
Each block represents a signal path from an IR LED to a photodiode. The IR LEDs are driven with a fixed transmit power. The brightness of each block represents the received signal strength. A small white dot in the middle of the block means the signal strength is zero.
There should be no small white dot blocks unless a finger or other obstruction is present.
The brightness of the blocks should not change unduly with flexing.
The brightness of the blocks need not be consistent across the axes.
Press u or d to change the transmit power.
Press q or escape to quit.
Watch Forced LED Levels
select /touchscreen watch-fll
This draws a cross of blocks. The vertical set represents the left and right edges. The horizontal set represents the top and bottom edges.
Each block represents a signal path from an IR LED to a photodiode. The IR LEDs are driven with a transmit power sufficient to achieve a useful signal. The brightness of each block represents the received signal strength, at the moderated transmit power. A small white dot in the middle of the block means the end to end loss was too great.
There must be no small white dot blocks unless a finger or other obstruction is present.
The brightness of the blocks should not change unduly with flexing.
The brightness of the blocks should be consistent across the screen.
Press any key to quit.
Reprogramming the Neonode Firmware
Display the firmware version like this:
ok select /touchscreen ok show-version
XO-4 C1 or later, with Q7B11 or later
The Neonode firmware will be upgraded automatically by Open Firmware following an Open Firmware upgrade, unless version 0.0.0.9 or earlier is present. To step over this limitation, use the command
ok update-nn-flash
XO-4 C1 or later, with Q7B05 to Q7B10
The Neonode firmware will be upgraded automatically by Open Firmware following an Open Firmware upgrade, up until version 0.0.0.9.
XO-4 B1, with Q7B05 or later
The Neonode firmware may be upgraded to the version included with Open Firmware, by typing:
flash-nn rom:\nn.hex
The Neonode firmware may be upgraded by placing the new firmware on a USB key, and typing:
flash-nn u:\firmware.hex
Replace firmware.hex with the name used for the firmware on the USB key.
XO-4 B1, with Q7B04 and earlier
The Neonode firmware may be upgraded by placing the new firmware on a USB key, and typing:
" u:\firmware.hex" $flash-bsl
Replace firmware.hex with the name used for the firmware on the USB key. The space between the quote and the u is essential.
Firmware Library
The library of touchscreen firmware is at
Several older versions are available for specific hardware:
- XO-4 B1 clear light guides should use 0.0.0.4, unless linearity is not a concern, in which case use the latest,
- XO-4 B1 dark light guides should use the latest,
- XO-4 C1 and later should use the latest,