Abstract: This iPython Notebook contains instructions for the FPE Interface Board PCB Bring-up test flow. This procedure can be used for the Interface Boards, versions 6.2 and 7.0. Simliar iPython Notebooks will be created for the Driver and Video Boards.
Below we create a small object for keeping track of which tests have passed. At the end of this document we verify this object to make sure all of the tests and procedures have been validly performed.
***IF THIS OBJECT DOES NOT VALIDATE THEN THE TESTS HAVE FAILED AND WILL BE INDICATED AT THE END OF THE DOCUMENT***
Note that in general, if at some stage in this procedure a test fails, the operator is expected to resolve it through the appropriate NCR/ECO process before proceeding.
Where a cell indicates "None # FILL IN ..." the test conductor should replace this text with the appropriate information.
In [2]:
import random
test_check = {}
In [3]:
test_check["DATE"] = None # TODO: Fill in today's date here as a string in the form "MM/DD/YY"
Please write down your personal information for accountability purposes:
In [4]:
test_check["NAME"] = None # FILL IN YOUR NAME HERE AS A STRING
test_check["EMAIL"] = None # FILL IN YOUR EMAIL HERE AS A STRING
Please record the part number and serial number of the unit under test:
In [101]:
test_check["Part Number"] = None # FILL IN THE PART NUMBER HERE AS A STRING
test_check["Serial Number"] = None # FILL IN THE SERIAL NUMBER HERE AS A STRING
Note test equipment model #'s and serial #'s
In [102]:
test_check["Equipment"] = {
"Multimeter": { "Model Number": None, # TODO: Enter a string here for the model number
"Serial Number": None # TODO: Enter a string here for the serial number
},
"Oscilloscope": { "Model Number": None, # TODO: Enter a string here for the model number
"Serial Number": None # TODO: Enter a string here for the serial number
},
"DHU Emulator": { "Model Number": None, # TODO: Enter a string here for the model number
"Serial Number": None # TODO: Enter a string here for the serial number
}
}
1) Verify work area is ESD safe.
In [103]:
test_check["ESD_SAFE"] = None # TODO: If the area is ESD safe enter 'ESD Safe'
2) Photograph the front of the assembly. Use a service like Flickr to upload your photo and paste the URL below, in place of the placeholder image.
You will need to double-click the active area to the left of the image to see the embedded link, then delete it and replace it with your new link. For Flickr, use the link given at "Share Photo" then "Embed". Hit shift-enter to run the cell and see the image.
3) Photograph the back of the assembly and upload it also. Paste the URL below, in place of the placeholder image.
In [104]:
test_check["Assembly Weight"] = None
test_check["Non-Flight Configurations"] = None
In [105]:
test_check["Visual Inspection"] = {}
5.a Workmanship and mechanical damage
In [106]:
test_check["Visual Inspection"]["Mechanical Damage"] = None # TODO: If there is no damage write 'No Damage'
5.b DNP parts not installed
In [107]:
test_check["Visual Inspection"]["DNP parts not installed"] = None # TODO: If no parts are missing write 'None missing'
5.c No missing components
In [108]:
test_check["Visual Inspection"]["No Missing Components"] = None # TODO: Set to True if no components are missing
5.d Verify required jumpers installed
TODO: Make a labeled picture of the jumpers
In [109]:
test_check["Visual Inspection"]["Required jumpers installed"] = None # TODO: Set to True if all required jumpers are installed
5.e Component orientation (chips, polarized caps, diodes, etc)
TODO: Make a labeled picture of component orientation
In [110]:
test_check["Visual Inspection"]["Components are oriented correctly"] = None # TODO: Set to True if all components are oriented correctly
5.f Verify chips are correct parts (& date codes if specified in design)
TODO: Make a labeled picture with part names
In [111]:
test_check["Visual Inspection"]["Chips are correct parts"] = None # TODO: Set to True if all chips are correct parts
5.g Verify connector savers installed if required
TODO: Determine where connector savers will be required for flight hardware and make list of connector numbers
In [112]:
test_check["Visual Inspection"]["Connector Savers Installed"] = None # TODO: Set to True if all connector savers are installed
6) With the power off and no external connections to the PCB, measure the resistance on all power lines. All measurements should be referenced to circuit ground.
In [113]:
test_check["Power Off Measurements"] = {}
In [114]:
test_check["Power Off Measurements"]["GND"] = None
test_check["Power Off Measurements"]["+5V"] = None
test_check["Power Off Measurements"]["+15V"] = None
test_check["Power Off Measurements"]["-12V"] = None
test_check["Power Off Measurements"]["+24"] = None
test_check["Power Off Measurements"]["-50"] = None
test_check["Power Off Measurements"]["+1.8F"] = None
test_check["Power Off Measurements"]["+1F"] = None
test_check["Power Off Measurements"]["+2.5"] = None
test_check["Power Off Measurements"]["+3.3B"] = None
test_check["Power Off Measurements"]["+3.3Dac"] = None
test_check["Power Off Measurements"]["+3.3F"] = None
In [33]:
#TODO: Add check of power off resistance measurements.
7) With power OFF, measure the resistance to ground of all pins on the JS stack connector.
Set up the dictionary to hold the results:
In [9]:
from collections import defaultdict
test_check["JS stack connector resistances"] = defaultdict(dict)
Now enter the measurement data (replace the word "None"). Note that expected units are given:
In [10]:
test_check["JS stack connector resistances"][1]["GND"] = None # Ohms
test_check["JS stack connector resistances"][2]["SDO-A-1"] = None # MOhms
test_check["JS stack connector resistances"][3]["GND"] = None # Ohms
test_check["JS stack connector resistances"][4]["SDO-B-1"] = None # MOhms
test_check["JS stack connector resistances"][5]["GND"] = None # Ohms
test_check["JS stack connector resistances"][6]["SDO-C-1"] = None # MOhms
test_check["JS stack connector resistances"][7]["GND"] = None # Ohms
test_check["JS stack connector resistances"][8]["SDO-D-1"] = None # MOhms
test_check["JS stack connector resistances"][9]["GND"] = None # Ohms
test_check["JS stack connector resistances"][10]["SCK"] = None # MOhms
test_check["JS stack connector resistances"][11]["GND"] = None # Ohms
test_check["JS stack connector resistances"][12]["CNV"] = None # MOhms
test_check["JS stack connector resistances"][13]["GND"] = None # Ohms
test_check["JS stack connector resistances"][14]["INT"] = None # MOhms
test_check["JS stack connector resistances"][15]["GND"] = None # Ohms
test_check["JS stack connector resistances"][16]["DEINT"] = None # MOhms
test_check["JS stack connector resistances"][17]["GND"] = None # Ohms
test_check["JS stack connector resistances"][18]["CLAMP"] = None # MOhms
test_check["JS stack connector resistances"][19]["GND"] = None # Ohms
test_check["JS stack connector resistances"][20]["CWCLK"] = None # MOhms
test_check["JS stack connector resistances"][21]["GND"] = None # Ohms
test_check["JS stack connector resistances"][22]["DD"] = None # MOhms
test_check["JS stack connector resistances"][23]["GND"] = None # Ohms
test_check["JS stack connector resistances"][24]["DCK"] = None # MOhms
test_check["JS stack connector resistances"][25]["GND"] = None # Ohms
test_check["JS stack connector resistances"][26]["SP1OR"] = None # MOhms
test_check["JS stack connector resistances"][27]["GND"] = None # Ohms
test_check["JS stack connector resistances"][28]["SP2OR"] = None # MOhms
test_check["JS stack connector resistances"][29]["GND"] = None # Ohms
test_check["JS stack connector resistances"][30]["SP3OR"] = None # MOhms
test_check["JS stack connector resistances"][31]["GND"] = None # Ohms
test_check["JS stack connector resistances"][32]["SRG"] = None # MOhms
test_check["JS stack connector resistances"][33]["GND"] = None # Ohms
test_check["JS stack connector resistances"][34]["SID"] = None # MOhms
test_check["JS stack connector resistances"][35]["GND"] = None # Ohms
test_check["JS stack connector resistances"][36]["SP1U"] = None # MOhms
test_check["JS stack connector resistances"][37]["GND"] = None # Ohms
test_check["JS stack connector resistances"][38]["SP2U"] = None # KOhms
test_check["JS stack connector resistances"][39]["GND"] = None # Ohms
test_check["JS stack connector resistances"][40]["SP3U"] = None # MOhms
test_check["JS stack connector resistances"][41]["GND"] = None # Ohms
test_check["JS stack connector resistances"][42]["_DS96_"] = None # Ohms
test_check["JS stack connector resistances"][43]["GND"] = None # MOhms
test_check["JS stack connector resistances"][44]["SDO-A-2"] = None # Ohms
test_check["JS stack connector resistances"][45]["GND"] = None # MOhms
test_check["JS stack connector resistances"][46]["SDO-B-2"] = None # Ohms
test_check["JS stack connector resistances"][47]["GND"] = None # MOhms
test_check["JS stack connector resistances"][48]["SDO-C-2"] = None # Ohms
test_check["JS stack connector resistances"][49]["GND"] = None # MOhms
test_check["JS stack connector resistances"][50]["SDO-D-2"] = None # MOhms
test_check["JS stack connector resistances"][51]["P1-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][52]["P2-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][53]["P3-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][54]["P3-OR-1"] = None # MOhms
test_check["JS stack connector resistances"][55]["P2-OR-1"] = None # MOhms
test_check["JS stack connector resistances"][56]["P1-OR-1"] = None # MOhms
test_check["JS stack connector resistances"][57]["RG-1"] = None # MOhms
test_check["JS stack connector resistances"][58]["P1-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][59]["P2-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][60]["P3-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][61]["P1-U-1"] = None # MOhms
test_check["JS stack connector resistances"][62]["P2-U-1"] = None # MOhms
test_check["JS stack connector resistances"][63]["P3-U-1"] = None # MOhms
test_check["JS stack connector resistances"][64]["ID-1"] = None # MOhms
test_check["JS stack connector resistances"][65]["SP1-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][66]["SP2-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][67]["SP3-IA-1"] = None # MOhms
test_check["JS stack connector resistances"][68]["SP1-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][69]["SP2-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][70]["SP3-FS-1"] = None # MOhms
test_check["JS stack connector resistances"][71]["HK0"] = None # MOhms
test_check["JS stack connector resistances"][72]["HK8"] = None # MOhms
test_check["JS stack connector resistances"][73]["HK16"] = None # MOhms
test_check["JS stack connector resistances"][74]["HK24"] = None # MOhms
test_check["JS stack connector resistances"][75]["HK32"] = None # MOhms
test_check["JS stack connector resistances"][76]["HK40"] = None # MOhms
test_check["JS stack connector resistances"][77]["HK48"] = None # MOhms
test_check["JS stack connector resistances"][78]["HK56"] = None # MOhms
test_check["JS stack connector resistances"][79]["HK64"] = None # MOhms
test_check["JS stack connector resistances"][80]["HK72"] = None # MOhms
test_check["JS stack connector resistances"][81]["SP1-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][82]["SP2-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][83]["SP3-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][84]["SP1-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][85]["SP2-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][86]["SP3-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][87]["P1-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][88]["P2-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][89]["P3-FS-2"] = None # MOhms
test_check["JS stack connector resistances"][90]["P3-OR-2"] = None # MOhms
test_check["JS stack connector resistances"][91]["P2-OR-2"] = None # MOhms
test_check["JS stack connector resistances"][92]["P1-OR-2"] = None # MOhms
test_check["JS stack connector resistances"][93]["RG-2"] = None # MOhms
test_check["JS stack connector resistances"][94]["P1-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][95]["P2-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][96]["P3-IA-2"] = None # MOhms
test_check["JS stack connector resistances"][97]["P1-U-2"] = None # MOhms
test_check["JS stack connector resistances"][98]["P2-U-2"] = None # MOhms
test_check["JS stack connector resistances"][99]["P3-U-2"] = None # MOhms
test_check["JS stack connector resistances"][100]["ID-2"] = None # MOhms
test_check["JS stack connector resistances"][101]["ID-4"] = None # OL
test_check["JS stack connector resistances"][102]["P3-U-4"] = None # OL
test_check["JS stack connector resistances"][103]["P2-U-4"] = None # OL
test_check["JS stack connector resistances"][104]["P1-U-4"] = None # OL
test_check["JS stack connector resistances"][105]["P3-IA-4"] = None # OL
test_check["JS stack connector resistances"][106]["P2-IA-4"] = None # OL
test_check["JS stack connector resistances"][107]["P1-IA-4"] = None # OL
test_check["JS stack connector resistances"][108]["RG-4"] = None # OL
test_check["JS stack connector resistances"][109]["P1-OR-4"] = None # OL
test_check["JS stack connector resistances"][110]["P2-OR-4"] = None # OL
test_check["JS stack connector resistances"][111]["P3-OR-4"] = None # OL
test_check["JS stack connector resistances"][112]["P3-FS-4"] = None # OL
test_check["JS stack connector resistances"][113]["P2-FS-4"] = None # OL
test_check["JS stack connector resistances"][114]["P1-FS-4"] = None # OL
test_check["JS stack connector resistances"][115]["SP3-FS-4"] = None # MOhms
test_check["JS stack connector resistances"][116]["SP2-FS-4"] = None # MOhms
test_check["JS stack connector resistances"][117]["SP1-FS-4"] = None # MOhms
test_check["JS stack connector resistances"][118]["SP3-IA-4"] = None # MOhms
test_check["JS stack connector resistances"][119]["SP2-IA-4"] = None # MOhms
test_check["JS stack connector resistances"][120]["SP1-IA-4"] = None # MOhms
test_check["JS stack connector resistances"][121]["HK80"] = None # MOhms
test_check["JS stack connector resistances"][122]["HK88"] = None # MOhms
test_check["JS stack connector resistances"][123]["HK96"] = None # MOhms
test_check["JS stack connector resistances"][124]["HK104"] = None # MOhms
test_check["JS stack connector resistances"][125]["HK112"] = None # MOhms
test_check["JS stack connector resistances"][126]["HK120"] = None # MOhms
test_check["JS stack connector resistances"][127]["HKA0"] = None # MOhms
test_check["JS stack connector resistances"][128]["HKA1"] = None # MOhms
test_check["JS stack connector resistances"][129]["HKA2"] = None # MOhms
test_check["JS stack connector resistances"][130]["HKCOM"] = None # MOhms
test_check["JS stack connector resistances"][131]["SP3-FS-3"] = None # MOhms
test_check["JS stack connector resistances"][132]["SP2-FS-3"] = None # MOhms
test_check["JS stack connector resistances"][133]["SP1-FS-3"] = None # MOhms
test_check["JS stack connector resistances"][134]["SP3-IA-3"] = None # MOhms
test_check["JS stack connector resistances"][135]["SP2-IA-3"] = None # MOhms
test_check["JS stack connector resistances"][136]["SP1-IA-3"] = None # MOhms
test_check["JS stack connector resistances"][137]["ID-3"] = None # OL
test_check["JS stack connector resistances"][138]["P3-U-3"] = None # OL
test_check["JS stack connector resistances"][139]["P2-U-3"] = None # OL
test_check["JS stack connector resistances"][140]["P1-U-3"] = None # OL
test_check["JS stack connector resistances"][141]["P3-IA-3"] = None # OL
test_check["JS stack connector resistances"][142]["P2-IA-3"] = None # OL
test_check["JS stack connector resistances"][143]["P1-IA-3"] = None # OL
test_check["JS stack connector resistances"][144]["RG-3"] = None # OL
test_check["JS stack connector resistances"][145]["P1-OR-3"] = None # OL
test_check["JS stack connector resistances"][146]["P2-OR-3"] = None # OL
test_check["JS stack connector resistances"][147]["P3-OR-3"] = None # OL
test_check["JS stack connector resistances"][148]["P3-FS-3"] = None # OL
test_check["JS stack connector resistances"][149]["P2-FS-3"] = None # OL
test_check["JS stack connector resistances"][150]["P1-FS-3"] = None # OL
test_check["JS stack connector resistances"][151]["GND"] = None # Ohms
test_check["JS stack connector resistances"][152]["SDO-D-4"] = None # MOhms
test_check["JS stack connector resistances"][153]["GND"] = None # Ohms
test_check["JS stack connector resistances"][154]["SDO-C-4"] = None # MOhms
test_check["JS stack connector resistances"][155]["GND"] = None # Ohms
test_check["JS stack connector resistances"][156]["SDO-B-4"] = None # MOhms
test_check["JS stack connector resistances"][157]["GND"] = None # Ohms
test_check["JS stack connector resistances"][158]["SDO-A-4"] = None # MOhms
test_check["JS stack connector resistances"][159]["GND"] = None # Ohms
test_check["JS stack connector resistances"][160]["_DS0_"] = None # MOhms
test_check["JS stack connector resistances"][161]["GND"] = None # Ohms
test_check["JS stack connector resistances"][162]["_DS8_"] = None # MOhms
test_check["JS stack connector resistances"][163]["GND"] = None # Ohms
test_check["JS stack connector resistances"][164]["_DS16_"] = None # MOhms
test_check["JS stack connector resistances"][165]["GND"] = None # Ohms
test_check["JS stack connector resistances"][166]["_DS24_"] = None # MOhms
test_check["JS stack connector resistances"][167]["GND"] = None # Ohms
test_check["JS stack connector resistances"][168]["_DS32_"] = None # MOhms
test_check["JS stack connector resistances"][169]["GND"] = None # Ohms
test_check["JS stack connector resistances"][170]["_DS40_"] = None # MOhms
test_check["JS stack connector resistances"][171]["GND"] = None # Ohms
test_check["JS stack connector resistances"][172]["Spare1"] = None # OL
test_check["JS stack connector resistances"][173]["GND"] = None # Ohms
test_check["JS stack connector resistances"][174]["RTDCOM"] = None # MOhms
test_check["JS stack connector resistances"][175]["GND"] = None # Ohms
test_check["JS stack connector resistances"][176]["15"] = None # MOhms
test_check["JS stack connector resistances"][177]["GND"] = None # Ohms
test_check["JS stack connector resistances"][178]["-12"] = None # MOhms
test_check["JS stack connector resistances"][179]["GND"] = None # Ohms
test_check["JS stack connector resistances"][180]["5"] = None # MOhms
test_check["JS stack connector resistances"][181]["GND"] = None # Ohms
test_check["JS stack connector resistances"][182]["_DS48_"] = None # MOhms
test_check["JS stack connector resistances"][183]["GND"] = None # Ohms
test_check["JS stack connector resistances"][184]["_DS56_"] = None # MOhms
test_check["JS stack connector resistances"][185]["GND"] = None # Ohms
test_check["JS stack connector resistances"][186]["_DS64_"] = None # MOhms
test_check["JS stack connector resistances"][187]["GND"] = None # Ohms
test_check["JS stack connector resistances"][188]["_DS72_"] = None # MOhms
test_check["JS stack connector resistances"][189]["GND"] = None # Ohms
test_check["JS stack connector resistances"][190]["_DS80_"] = None # MOhms
test_check["JS stack connector resistances"][191]["GND"] = None # Ohms
test_check["JS stack connector resistances"][192]["_DS88_"] = None # MOhms
test_check["JS stack connector resistances"][193]["GND"] = None # Ohms
test_check["JS stack connector resistances"][194]["SDO-D-3"] = None # MOhms
test_check["JS stack connector resistances"][195]["GND"] = None # Ohms
test_check["JS stack connector resistances"][196]["SDO-C-3"] = None # MOhms
test_check["JS stack connector resistances"][197]["GND"] = None # Ohms
test_check["JS stack connector resistances"][198]["SDO-B-3"] = None # MOhms
test_check["JS stack connector resistances"][199]["GND"] = None # Ohms
test_check["JS stack connector resistances"][200]["SDO-A-3"] = None # MOhms
Executing the next cell will compare the recorded values above to the expected values, within a margin of +/- 10%. The output should not produce any errors.
In [ ]:
assert test_check["JS stack connector resistances"][1]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][2]["SDO-A-2"] <= 1.98
assert test_check["JS stack connector resistances"][3]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][4]["SDO-B-1"] <= 1.98
assert test_check["JS stack connector resistances"][5]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][6]["SDO-C-1"] <= 1.98
assert test_check["JS stack connector resistances"][7]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][8]["SDO-D-1"] <= 1.98
assert test_check["JS stack connector resistances"][9]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][10]["SCK"] <= 1.98
assert test_check["JS stack connector resistances"][11]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][12]["CNV"] <= 1.98
assert test_check["JS stack connector resistances"][13]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][14]["INT"] <= 1.98
assert test_check["JS stack connector resistances"][15]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][16]["DEINT"] <= 1.98
assert test_check["JS stack connector resistances"][17]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][18]["CLAMP"] <= 1.98
assert test_check["JS stack connector resistances"][19]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][20]["CWCLK"] <= 1.98
assert test_check["JS stack connector resistances"][21]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][22]["DD"] <= 1.98
assert test_check["JS stack connector resistances"][23]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][24]["DCK"] <= 1.98
assert test_check["JS stack connector resistances"][25]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][26]["SP1OR"] <= 1.98
assert test_check["JS stack connector resistances"][27]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][28]["SP2OR"] <= 1.98
assert test_check["JS stack connector resistances"][29]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][30]["SP3OR"] <= 1.98
assert test_check["JS stack connector resistances"][31]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][32]["SRG"] <= 1.98
assert test_check["JS stack connector resistances"][33]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][34]["SID"] <= 1.98
assert test_check["JS stack connector resistances"][35]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][36]["SP1U"] <= 1.98
assert test_check["JS stack connector resistances"][37]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][38]["SP2U"] <= 1.98
assert test_check["JS stack connector resistances"][39]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][40]["SP3U"] <= 1.98
assert test_check["JS stack connector resistances"][41]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][42]["_DS96_"] <= 1.98
assert test_check["JS stack connector resistances"][43]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][44]["SDO-A-2"] <= 1.98
assert test_check["JS stack connector resistances"][45]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][46]["SDO-B-2"] <= 1.98
assert test_check["JS stack connector resistances"][47]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][48]["SDO-C-2"] <= 1.98
assert test_check["JS stack connector resistances"][49]["GND"] <= 0.2
assert 1.62 <= test_check["JS stack connector resistances"][50]["SDO-D-2"] <= 1.98
assert test_check["JS stack connector resistances"][51]["P1-FS-1"] >= 5.4
assert test_check["JS stack connector resistances"][52]["P2-FS-1"] >= 22
assert 21.1 <= test_check["JS stack connector resistances"][53]["P3-FS-1"] <= 25.7
assert 7 <= test_check["JS stack connector resistances"][54]["P3-OR-1"] <= 8.4
assert 7 <= test_check["JS stack connector resistances"][55]["P2-OR-1"] <= 8.4
assert 7 <= test_check["JS stack connector resistances"][56]["P1-OR-1"] <= 8.4
assert 7.6 <= test_check["JS stack connector resistances"][57]["RG-1"] <= 9.3
assert test_check["JS stack connector resistances"][58]["P1-IA-1"] >= 22
assert test_check["JS stack connector resistances"][59]["P2-IA-1"] >= 22
assert test_check["JS stack connector resistances"][60]["P3-IA-1"] >= 22
assert 7.2 <= test_check["JS stack connector resistances"][61]["P1-U-1"] <= 8.8
assert 7.2 <= test_check["JS stack connector resistances"][62]["P2-U-1"] <= 8.8
assert 7.2 <= test_check["JS stack connector resistances"][63]["P3-U-1"] <= 8.8
assert 7.2 <= test_check["JS stack connector resistances"][64]["ID-1"] <= 8.8
assert 1.62 <= test_check["JS stack connector resistances"][65]["SP1-IA-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][66]["SP2-IA-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][67]["SP3-IA-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][68]["SP1-FS-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][69]["SP2-FS-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][70]["SP3-FS-1"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][71]["HK0"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][72]["HK8"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][73]["HK16"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][74]["HK24"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][75]["HK32"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][76]["HK40"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][77]["HK48"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][78]["HK56"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][79]["HK64"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][80]["HK72"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][81]["SP1-IA-2"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][82]["SP2-IA-2"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][83]["SP3-IA-2"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][84]["SP1-FS-2"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][85]["SP2-FS-2"] <= 1.98
assert 1.62 <= test_check["JS stack connector resistances"][86]["SP3-FS-2"] <= 1.98
assert 8 <= test_check["JS stack connector resistances"][87]["P1-FS-2"] <= 12
assert 8 <= test_check["JS stack connector resistances"][88]["P2-FS-2"] <= 12
assert 8 <= test_check["JS stack connector resistances"][89]["P3-FS-2"] <= 12
assert 2.5 <= test_check["JS stack connector resistances"][90]["P3-OR-2"] <= 3.1
assert 2.5 <= test_check["JS stack connector resistances"][91]["P2-OR-2"] <= 3.1
assert 2.5 <= test_check["JS stack connector resistances"][92]["P1-OR-2"] <= 3.1
assert 1.2 <= test_check["JS stack connector resistances"][93]["RG-2"] <=1.45
assert 8 <= test_check["JS stack connector resistances"][94]["P1-IA-2"] <= 12
assert 8 <= test_check["JS stack connector resistances"][95]["P2-IA-2"] <= 12
assert 8 <= test_check["JS stack connector resistances"][96]["P3-IA-2"] <= 12
assert 2.5 <= test_check["JS stack connector resistances"][97]["P1-U-2"] <= 3.1
assert 2.5 <= test_check["JS stack connector resistances"][98]["P2-U-2"] <= 3.1
assert 2.5 <= test_check["JS stack connector resistances"][99]["P3-U-2"] <= 3.1
assert 1.35 <= test_check["JS stack connector resistances"][100]["ID-2"] <= 1.65
assert test_check["JS stack connector resistances"][101]["ID-4"] == "OL"
assert test_check["JS stack connector resistances"][102]["P3-U-4"] == "OL"
assert test_check["JS stack connector resistances"][103]["P2-U-4"] == "OL"
assert test_check["JS stack connector resistances"][104]["P1-U-4"] == "OL"
assert test_check["JS stack connector resistances"][105]["P3-IA-4"] == "OL"
assert test_check["JS stack connector resistances"][106]["P2-IA-4"] == "OL"
assert test_check["JS stack connector resistances"][107]["P1-IA-4"] == "OL"
assert test_check["JS stack connector resistances"][108]["RG-4"] == "OL"
assert test_check["JS stack connector resistances"][109]["P1-OR-4"] == "OL"
assert test_check["JS stack connector resistances"][110]["P2-OR-4"] == "OL"
assert test_check["JS stack connector resistances"][111]["P3-OR-4"] == "OL"
assert test_check["JS stack connector resistances"][112]["P3-FS-4"] == "OL"
assert test_check["JS stack connector resistances"][113]["P2-FS-4"] == "OL"
assert test_check["JS stack connector resistances"][114]["P1-FS-4"] == "OL"
assert 1.5 <= test_check["JS stack connector resistances"][115]["SP3-FS-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][116]["SP2-FS-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][117]["SP1-FS-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][118]["SP3-IA-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][119]["SP2-IA-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][120]["SP1-IA-4"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][121]["HK80"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][122]["HK88"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][123]["HK96"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][124]["HK104"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][125]["HK112"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][126]["HK120"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][127]["HKA0"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][128]["HKA1"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][129]["HKA2"] <= 1.9
assert 315 <= test_check["JS stack connector resistances"][130]["HKCOM"] <= 385
assert 1.5 <= test_check["JS stack connector resistances"][131]["SP3-FS-3"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][132]["SP2-FS-3"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][133]["SP1-FS-3"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][134]["SP3-IA-3"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][135]["SP2-IA-3"] <= 1.9
assert 1.5 <= test_check["JS stack connector resistances"][136]["SP1-IA-3"] <= 1.9
assert test_check["JS stack connector resistances"][137]["ID-3"] == "OL"
assert test_check["JS stack connector resistances"][138]["P3-U-3"] == "OL"
assert test_check["JS stack connector resistances"][139]["P2-U-3"] == "OL"
assert test_check["JS stack connector resistances"][140]["P1-U-3"] == "OL"
assert test_check["JS stack connector resistances"][141]["P3-IA-3"] == "OL"
assert test_check["JS stack connector resistances"][142]["P2-IA-3"] == "OL"
assert test_check["JS stack connector resistances"][143]["P1-IA-3"] == "OL"
assert test_check["JS stack connector resistances"][144]["RG-3"] == "OL"
assert test_check["JS stack connector resistances"][145]["P1-OR-3"] == "OL"
assert test_check["JS stack connector resistances"][146]["P2-OR-3"] == "OL"
assert test_check["JS stack connector resistances"][147]["P3-OR-3"] == "OL"
assert test_check["JS stack connector resistances"][148]["P3-FS-3"] == "OL"
assert test_check["JS stack connector resistances"][149]["P2-FS-3"] == "OL"
assert test_check["JS stack connector resistances"][150]["P1-FS-3"] == "OL"
assert test_check["JS stack connector resistances"][151]["GND"] <= 0.2
assert 1.35 <= test_check["JS stack connector resistances"][152]["SDO-D-4"] <= 1.65
assert test_check["JS stack connector resistances"][153]["GND"] <= 0.2
assert 1.35 <= test_check["JS stack connector resistances"][154]["SDO-C-4"] <= 1.65
assert test_check["JS stack connector resistances"][155]["GND"] <= 0.2
assert 1.35 <= test_check["JS stack connector resistances"][156]["SDO-B-4"] <= 1.65
assert test_check["JS stack connector resistances"][157]["GND"] <= 0.2
assert 1.35 <= test_check["JS stack connector resistances"][158]["SDO-A-4"] <= 1.65
assert test_check["JS stack connector resistances"][159]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][160]["_DS0_"] <= 1.9
assert test_check["JS stack connector resistances"][161]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][162]["_DS8_"] <= 1.9
assert test_check["JS stack connector resistances"][163]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][164]["_DS16_"] <= 1.9
assert test_check["JS stack connector resistances"][165]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][166]["_DS24_"] <= 1.9
assert test_check["JS stack connector resistances"][167]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][168]["_DS32_"] <= 1.9
assert test_check["JS stack connector resistances"][169]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][170]["_DS40_"] <= 1.9
assert test_check["JS stack connector resistances"][171]["GND"] <= 0.2
assert test_check["JS stack connector resistances"][172]["Spare1"] == "OL"
assert test_check["JS stack connector resistances"][173]["GND"] <= 0.2
assert 3.6 <= test_check["JS stack connector resistances"][174]["RTDCOM"] <= 4.4
assert test_check["JS stack connector resistances"][175]["GND"] <= 0.2
assert test_check["JS stack connector resistances"][176]["15"] >= 2
assert test_check["JS stack connector resistances"][177]["GND"] <= 0.2
assert 5.4 <= test_check["JS stack connector resistances"][178]["-12"] <= 6.6
assert test_check["JS stack connector resistances"][179]["GND"] <= 0.2
assert test_check["JS stack connector resistances"][180]["5"] >=2
assert test_check["JS stack connector resistances"][181]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][182]["_DS48_"] <= 1.9
assert test_check["JS stack connector resistances"][183]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][184]["_DS56_"] <= 1.9
assert test_check["JS stack connector resistances"][185]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][186]["_DS64_"] <= 1.9
assert test_check["JS stack connector resistances"][187]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][188]["_DS72_"] <= 1.9
assert test_check["JS stack connector resistances"][189]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][190]["_DS80_"] <= 1.9
assert test_check["JS stack connector resistances"][191]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][192]["_DS88_"] <= 1.9
assert test_check["JS stack connector resistances"][193]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][194]["SDO-D-3"] <= 1.9
assert test_check["JS stack connector resistances"][195]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][196]["SDO-C-3"] <= 1.9
assert test_check["JS stack connector resistances"][197]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][198]["SDO-B-3"] <= 1.9
assert test_check["JS stack connector resistances"][199]["GND"] <= 0.2
assert 1.5 <= test_check["JS stack connector resistances"][200]["SDO-A-3"] <= 1.9
1) Verify that voltages on power connector from DHU Emulator are correct before connecting to test assembly. The relevant FPE 1 & FPE 2 connector pins are wired as follows:
pin 1 & 5: GND
pin 2 & 7: +15V
pin 3 & 8: +5V
pin 4 & 9: -12V
(pin 6 is NC in 6.2 Interface design, but DHU FPE1 connector pin 6 is wired to FPE2 connector pin 6.)
Set up the dictionary to hold the results:
In [22]:
test_check["Power On Measurements"]={}
Record the voltage measurements:
In [27]:
test_check["Power On Measurements"]["+5V"] = None # Volts
test_check["Power On Measurements"]["+15V"] = None # Volts
test_check["Power On Measurements"]["-12V"] = None # Volts
Now see if the values are within tolerance:
In [28]:
assert 4.75 <= test_check["Power On Measurements"]["+5V"] <= 5.25
assert 14.25 <= test_check["Power On Measurements"]["+15V"] <= 15.75
assert -12.6 <= test_check["Power On Measurements"]["-12V"] <= -11.4
2) Connect DHU power cable to test assembly J7. Measure voltages again, along with currents. Current measurements are made on the DHE Emulator front panel using a DMM. The output voltages at the measurement ports have a scale value of 1V/A.
In [29]:
test_check["Power On Measurements Connected"]={}
Record the voltage and current measurements:
In [31]:
test_check["Power On Measurements Connected"]["+5V"] = None # Volts
test_check["Power On Measurements Connected"]["+5V Current"] = None # milliamps
test_check["Power On Measurements Connected"]["+15V"] = None # Volts
test_check["Power On Measurements Connected"]["+15V Current"] = None # milliamps
test_check["Power On Measurements Connected"]["-12V"] = None # Volts
test_check["Power On Measurements Connected"]["12V Current"] = None # milliamps
In [ ]:
assert 4.75 <= test_check["Power On Measurements"]["+5V"] <= 5.25
assert 187 <= test_check["Power On Measurements Connected"]["+5V Current"] <= 207
assert 14.25 <= test_check["Power On Measurements"]["+15V"] <= 15.75
assert 12.8 <= test_check["Power On Measurements Connected"]["+15V Current"] <= 14.2
assert -12.6 <= test_check["Power On Measurements"]["-12V"] <= -11.4
assert 24.1 <= test_check["Power On Measurements Connected"]["12V Current"] <= 26.7
3) Capture FLIR images; check for hot spots. Use a service like Flickr to upload your photo and paste the URL below, in place of the placeholder image.
You will need to double-click the active area to the left of the image to see the embedded link, then delete it and replace it with your new link. For Flickr, use the link given at "Share Photo" then "Embed". Hit shift-enter to run the cell and see the image.
Remember that whenever you power-cycle the Observatory Simulator, you should set preload=True
below.
When you are running this notebook and it has not been power cycled, you should set preload=False
.
Make sure that FPE has both power and data cables connected, and make sure that the FPE is connected to the "FPE 1" socket on the observatory simulator. Execute the cell below to program the FPGA:
In [41]:
from tessfpe.dhu.fpe import FPE
from tessfpe.dhu.unit_tests import check_house_keeping_voltages
fpe1 = FPE(1, debug=False, preload=True, FPE_Wrapper_version='6.1.1')
print fpe1.version
if check_house_keeping_voltages(fpe1):
print "Wrapper load complete. Interface voltages OK."
In [42]:
from tessfpe.data.operating_parameters import operating_parameters
def set_fpe_defaults(fpe):
"Set the FPE to the default operating parameters and return a list of the default values"
defaults = {}
for k in range(len(fpe.ops.address)):
if fpe.ops.address[k] is None:
continue
fpe.ops.address[k].value = fpe.ops.address[k].default
defaults[fpe.ops.address[k].name] = fpe.ops.address[k].default
return defaults
# Print out the default values
set_fpe_defaults(fpe1)
Out[42]:
In [43]:
from collections import defaultdict
test_check["JS stack connector voltages"] = defaultdict(dict)
In [ ]:
test_check["JS stack connector voltages"][1]["GND"] = None
test_check["JS stack connector voltages"][2]["SDO-A-1"] = None
test_check["JS stack connector voltages"][3]["GND"] = None
test_check["JS stack connector voltages"][4]["SDO-B-1"] = None
test_check["JS stack connector voltages"][5]["GND"] = None
test_check["JS stack connector voltages"][6]["SDO-C-1"] = None
test_check["JS stack connector voltages"][7]["GND"] = None
test_check["JS stack connector voltages"][8]["SDO-D-1"] = None
test_check["JS stack connector voltages"][9]["GND"] = None
test_check["JS stack connector voltages"][10]["SCK"] = None
test_check["JS stack connector voltages"][11]["GND"] = None
test_check["JS stack connector voltages"][12]["CNV"] = None
test_check["JS stack connector voltages"][13]["GND"] = None
test_check["JS stack connector voltages"][14]["INT"] = None
test_check["JS stack connector voltages"][15]["GND"] = None
test_check["JS stack connector voltages"][16]["DEINT"] = None
test_check["JS stack connector voltages"][17]["GND"] = None
test_check["JS stack connector voltages"][18]["CLAMP"] = None
test_check["JS stack connector voltages"][19]["GND"] = None
test_check["JS stack connector voltages"][20]["CWCLK"] = None
test_check["JS stack connector voltages"][21]["GND"] = None
test_check["JS stack connector voltages"][22]["DD"] = None
test_check["JS stack connector voltages"][23]["GND"] = None
test_check["JS stack connector voltages"][24]["DCK"] = None
test_check["JS stack connector voltages"][25]["GND"] = None
test_check["JS stack connector voltages"][26]["SP1OR"] = None
test_check["JS stack connector voltages"][27]["GND"] = None
test_check["JS stack connector voltages"][28]["SP2OR"] = None
test_check["JS stack connector voltages"][29]["GND"] = None
test_check["JS stack connector voltages"][30]["SP3OR"] = None
test_check["JS stack connector voltages"][31]["GND"] = None
test_check["JS stack connector voltages"][32]["SRG"] = None
test_check["JS stack connector voltages"][33]["GND"] = None
test_check["JS stack connector voltages"][34]["SID"] = None
test_check["JS stack connector voltages"][35]["GND"] = None
test_check["JS stack connector voltages"][36]["SP1U"] = None
test_check["JS stack connector voltages"][37]["GND"] = None
test_check["JS stack connector voltages"][38]["SP2U"] = None
test_check["JS stack connector voltages"][39]["GND"] = None
test_check["JS stack connector voltages"][40]["SP3U"] = None
test_check["JS stack connector voltages"][41]["GND"] = None
test_check["JS stack connector voltages"][42]["_DS96_"] = None
test_check["JS stack connector voltages"][43]["GND"] = None
test_check["JS stack connector voltages"][44]["SDO-A-2"] = None
test_check["JS stack connector voltages"][45]["GND"] = None
test_check["JS stack connector voltages"][46]["SDO-B-2"] = None
test_check["JS stack connector voltages"][47]["GND"] = None
test_check["JS stack connector voltages"][48]["SDO-C-2"] = None
test_check["JS stack connector voltages"][49]["GND"] = None
test_check["JS stack connector voltages"][50]["SDO-D-2"] = None
test_check["JS stack connector voltages"][51]["P1-FS-1"] = None
test_check["JS stack connector voltages"][52]["P2-FS-1"] = None
test_check["JS stack connector voltages"][53]["P3-FS-1"] = None
test_check["JS stack connector voltages"][54]["P3-OR-1"] = None
test_check["JS stack connector voltages"][55]["P2-OR-1"] = None
test_check["JS stack connector voltages"][56]["P1-OR-1"] = None
test_check["JS stack connector voltages"][57]["RG-1"] = None
test_check["JS stack connector voltages"][58]["P1-IA-1"] = None
test_check["JS stack connector voltages"][59]["P2-IA-1"] = None
test_check["JS stack connector voltages"][60]["P3-IA-1"] = None
test_check["JS stack connector voltages"][61]["P1-U-1"] = None
test_check["JS stack connector voltages"][62]["P2-U-1"] = None
test_check["JS stack connector voltages"][63]["P3-U-1"] = None
test_check["JS stack connector voltages"][64]["ID-1"] = None
test_check["JS stack connector voltages"][65]["SP1-IA-1"] = None
test_check["JS stack connector voltages"][66]["SP2-IA-1"] = None
test_check["JS stack connector voltages"][67]["SP3-IA-1"] = None
test_check["JS stack connector voltages"][68]["SP1-FS-1"] = None
test_check["JS stack connector voltages"][69]["SP2-FS-1"] = None
test_check["JS stack connector voltages"][70]["SP3-FS-1"] = None
test_check["JS stack connector voltages"][71]["HK0"] = None
test_check["JS stack connector voltages"][72]["HK8"] = None
test_check["JS stack connector voltages"][73]["HK16"] = None
test_check["JS stack connector voltages"][74]["HK24"] = None
test_check["JS stack connector voltages"][75]["HK32"] = None
test_check["JS stack connector voltages"][76]["HK40"] = None
test_check["JS stack connector voltages"][77]["HK48"] = None
test_check["JS stack connector voltages"][78]["HK56"] = None
test_check["JS stack connector voltages"][79]["HK64"] = None
test_check["JS stack connector voltages"][80]["HK72"] = None
test_check["JS stack connector voltages"][81]["SP1-IA-2"] = None
test_check["JS stack connector voltages"][82]["SP2-IA-2"] = None
test_check["JS stack connector voltages"][83]["SP3-IA-2"] = None
test_check["JS stack connector voltages"][84]["SP1-FS-2"] = None
test_check["JS stack connector voltages"][85]["SP2-FS-2"] = None
test_check["JS stack connector voltages"][86]["SP3-FS-2"] = None
test_check["JS stack connector voltages"][87]["P1-FS-2"] = None
test_check["JS stack connector voltages"][88]["P2-FS-2"] = None
test_check["JS stack connector voltages"][89]["P3-FS-2"] = None
test_check["JS stack connector voltages"][90]["P3-OR-2"] = None
test_check["JS stack connector voltages"][91]["P2-OR-2"] = None
test_check["JS stack connector voltages"][92]["P1-OR-2"] = None
test_check["JS stack connector voltages"][93]["RG-2"] = None
test_check["JS stack connector voltages"][94]["P1-IA-2"] = None
test_check["JS stack connector voltages"][95]["P2-IA-2"] = None
test_check["JS stack connector voltages"][96]["P3-IA-2"] = None
test_check["JS stack connector voltages"][97]["P1-U-2"] = None
test_check["JS stack connector voltages"][98]["P2-U-2"] = None
test_check["JS stack connector voltages"][99]["P3-U-2"] = None
test_check["JS stack connector voltages"][100]["ID-2"] = None
test_check["JS stack connector voltages"][101]["ID-4"] = None
test_check["JS stack connector voltages"][102]["P3-U-4"] = None
test_check["JS stack connector voltages"][103]["P2-U-4"] = None
test_check["JS stack connector voltages"][104]["P1-U-4"] = None
test_check["JS stack connector voltages"][105]["P3-IA-4"] = None
test_check["JS stack connector voltages"][106]["P2-IA-4"] = None
test_check["JS stack connector voltages"][107]["P1-IA-4"] = None
test_check["JS stack connector voltages"][108]["RG-4"] = None
test_check["JS stack connector voltages"][109]["P1-OR-4"] = None
test_check["JS stack connector voltages"][110]["P2-OR-4"] = None
test_check["JS stack connector voltages"][111]["P3-OR-4"] = None
test_check["JS stack connector voltages"][112]["P3-FS-4"] = None
test_check["JS stack connector voltages"][113]["P2-FS-4"] = None
test_check["JS stack connector voltages"][114]["P1-FS-4"] = None
test_check["JS stack connector voltages"][115]["SP3-FS-4"] = None
test_check["JS stack connector voltages"][116]["SP2-FS-4"] = None
test_check["JS stack connector voltages"][117]["SP1-FS-4"] = None
test_check["JS stack connector voltages"][118]["SP3-IA-4"] = None
test_check["JS stack connector voltages"][119]["SP2-IA-4"] = None
test_check["JS stack connector voltages"][120]["SP1-IA-4"] = None
test_check["JS stack connector voltages"][121]["HK80"] = None
test_check["JS stack connector voltages"][122]["HK88"] = None
test_check["JS stack connector voltages"][123]["HK96"] = None
test_check["JS stack connector voltages"][124]["HK104"] = None
test_check["JS stack connector voltages"][125]["HK112"] = None
test_check["JS stack connector voltages"][126]["HK120"] = None
test_check["JS stack connector voltages"][127]["HKA0"] = None
test_check["JS stack connector voltages"][128]["HKA1"] = None
test_check["JS stack connector voltages"][129]["HKA2"] = None
test_check["JS stack connector voltages"][130]["HKCOM"] = None
test_check["JS stack connector voltages"][131]["SP3-FS-3"] = None
test_check["JS stack connector voltages"][132]["SP2-FS-3"] = None
test_check["JS stack connector voltages"][133]["SP1-FS-3"] = None
test_check["JS stack connector voltages"][134]["SP3-IA-3"] = None
test_check["JS stack connector voltages"][135]["SP2-IA-3"] = None
test_check["JS stack connector voltages"][136]["SP1-IA-3"] = None
test_check["JS stack connector voltages"][137]["ID-3"] = None
test_check["JS stack connector voltages"][138]["P3-U-3"] = None
test_check["JS stack connector voltages"][139]["P2-U-3"] = None
test_check["JS stack connector voltages"][140]["P1-U-3"] = None
test_check["JS stack connector voltages"][141]["P3-IA-3"] = None
test_check["JS stack connector voltages"][142]["P2-IA-3"] = None
test_check["JS stack connector voltages"][143]["P1-IA-3"] = None
test_check["JS stack connector voltages"][144]["RG-3"] = None
test_check["JS stack connector voltages"][145]["P1-OR-3"] = None
test_check["JS stack connector voltages"][146]["P2-OR-3"] = None
test_check["JS stack connector voltages"][147]["P3-OR-3"] = None
test_check["JS stack connector voltages"][148]["P3-FS-3"] = None
test_check["JS stack connector voltages"][149]["P2-FS-3"] = None
test_check["JS stack connector voltages"][150]["P1-FS-3"] = None
test_check["JS stack connector voltages"][151]["GND"] = None
test_check["JS stack connector voltages"][152]["SDO-D-4"] = None
test_check["JS stack connector voltages"][153]["GND"] = None
test_check["JS stack connector voltages"][154]["SDO-C-4"] = None
test_check["JS stack connector voltages"][155]["GND"] = None
test_check["JS stack connector voltages"][156]["SDO-B-4"] = None
test_check["JS stack connector voltages"][157]["GND"] = None
test_check["JS stack connector voltages"][158]["SDO-A-4"] = None
test_check["JS stack connector voltages"][159]["GND"] = None
test_check["JS stack connector voltages"][160]["_DS0_"] = None
test_check["JS stack connector voltages"][161]["GND"] = None
test_check["JS stack connector voltages"][162]["_DS8_"] = None
test_check["JS stack connector voltages"][163]["GND"] = None
test_check["JS stack connector voltages"][164]["_DS16_"] = None
test_check["JS stack connector voltages"][165]["GND"] = None
test_check["JS stack connector voltages"][166]["_DS24_"] = None
test_check["JS stack connector voltages"][167]["GND"] = None
test_check["JS stack connector voltages"][168]["_DS32_"] = None
test_check["JS stack connector voltages"][169]["GND"] = None
test_check["JS stack connector voltages"][170]["_DS40_"] = None
test_check["JS stack connector voltages"][171]["GND"] = None
test_check["JS stack connector voltages"][172][""] = None
test_check["JS stack connector voltages"][173]["GND"] = None
test_check["JS stack connector voltages"][174]["RTDCOM"] = None
test_check["JS stack connector voltages"][175]["GND"] = None
test_check["JS stack connector voltages"][176]["15"] = None
test_check["JS stack connector voltages"][177]["GND"] = None
test_check["JS stack connector voltages"][178]["-12"] = None
test_check["JS stack connector voltages"][179]["GND"] = None
test_check["JS stack connector voltages"][180]["5"] = None
test_check["JS stack connector voltages"][181]["GND"] = None
test_check["JS stack connector voltages"][182]["_DS48_"] = None
test_check["JS stack connector voltages"][183]["GND"] = None
test_check["JS stack connector voltages"][184]["_DS56_"] = None
test_check["JS stack connector voltages"][185]["GND"] = None
test_check["JS stack connector voltages"][186]["_DS64_"] = None
test_check["JS stack connector voltages"][187]["GND"] = None
test_check["JS stack connector voltages"][188]["_DS72_"] = None
test_check["JS stack connector voltages"][189]["GND"] = None
test_check["JS stack connector voltages"][190]["_DS80_"] = None
test_check["JS stack connector voltages"][191]["GND"] = None
test_check["JS stack connector voltages"][192]["_DS88_"] = None
test_check["JS stack connector voltages"][193]["GND"] = None
test_check["JS stack connector voltages"][194]["SDO-D-3"] = None
test_check["JS stack connector voltages"][195]["GND"] = None
test_check["JS stack connector voltages"][196]["SDO-C-3"] = None
test_check["JS stack connector voltages"][197]["GND"] = None
test_check["JS stack connector voltages"][198]["SDO-B-3"] = None
test_check["JS stack connector voltages"][199]["GND"] = None
test_check["JS stack connector voltages"][200]["SDO-A-3"] = None
Executing the next cell will compare the recorded values above to the expected values, within a margin of +/- 10%. The output should not produce any errors.
In [ ]:
#TODO check values against reference values
5) Issue the start frames command.
In [127]:
# TODO Insert start_frames command
In [48]:
fpe1.cmd_stop_frames()
Out[48]:
6) Capture an image and display it. Note that with only the Interface Board connected, the captured image should be comprised entirely of pixels with a value of -1.
In [131]:
# TODO Insert capture image commands
7) Issue the stop frames command.
In [129]:
# TODO Insert stop_frames command
2) Take a set of housekeeping data.
In [ ]:
from tessfpe.data.housekeeping_channels import housekeeping_channels
housekeeping_channels
In [ ]:
# TODO compare measured to reference values
- FPE Test Procedures - FPE Bring-up Procedure (Check boxes for board type? Flight or not?) - Verify work area is ESD safe - Setup per diagram, take photos - Note test equipment model #'s and serial #'s - Standard inspections for all 3 PCB types; capture images - Weigh assembly, note non-flight configurations - Visual inspection under stereo microscope - Workmanship and mechanical damage - DNP parts not installed - No missing components Verify req'd jumpers installed Component orientation (chips, polarized caps, diodes, etc) Verify chips are correct parts (& date codes if specified in design) Verify connector savers installed if req'd Power OFF resistance measurements (compare to reference values) Power lines Stack connector CCD connectors (video only) Maybe delete this? Discuss. Temp connector (video only) Power ON voltage measurements (compare to reference values/images) DHU supply voltages before connection to setup DHU supply voltages and currents with setup connected Capture FLIR images; check for hot spots Program FPGA Start frames Take raw image as verification that FPGA was programmed OK Stop frames Take HK data as further verification ref values for 3 cases: Interface only, Interface + Driver, full stack) Measure voltages on all open connector pins (= PCB safe-to-mate) Interface: stack connector only Driver: stack connector only Video: Stack connector CCD connectors (discuss need for this) Temp connector *Bring up complete* FPE Functional Test and calibration (Assume for now we test full stack, not separate boards) Setup per diagram, take photos Note test equipment model #'s and serial #'s Power ON voltage measurements (compare to reference values/images) DHU supply voltages before connection to setup DHU supply voltages and currents with setup connected Program FPGA Verify communication Load Wrapper and MemFiles (record version numbers) Housekeeping calibration Start frames, Stop frames (or otherwise set DACs to default values) Do HK calibration process Get HK bias value(s) Etc… Very with DMM measurements Supply voltages Others? All 128? HK ADC bias? Capture calibrated HK set Bias groups Clock Driver groups Interface group DAC Calibration Do DAC calibration process Capture HK set over full range of DAC settings (frames stopped) Start frames Capture HK set (frames running) CCD signal verification and CCD safe-to-mate Measure signals at CCD connectors Verify clock voltages, timing, wave shapes on scope for each CCD connector RTD Functional test and calibration Connect 12 x 1000 Ohm 0.1% resistors to Temp connector (Connect calibration R's to AlCu sensor connections somewhere)?? Capture HK set for RTD's Do RTD calibration process Capture calibrated HK set for Thermal group Heater Functional test and calibration Connect three heater calibration resistors to HTR outputs Capture HK set for Heater group Do Heater calibration process Capture calibrated HK set for Heater group *Functional test and calibration complete* *FPE Test Procedure complete*
Below we validate that all of the tests and procedures above have been performed properly.
If some step has not been carried out properly, an Exception will be thrown.
In [ ]:
# TODO: Recursively search test_check to make sure that no value is `None`
In [ ]:
def url_exists(site, path):
# TODO: Fix me so that site is broken up from path
import httplib
conn = httplib.HTTPConnection(site)
conn.request('HEAD', path)
response = conn.getresponse()
conn.close()
return response.status == 200
In [ ]:
assert type(test_check["NAME"]) is str, "Name should be entered as a string"
assert type(test_check["EMAIL"]) is str, "Email should be entered as a string"
# TODO: check that email is a valid email with a regex
# assert type(test_check["EMAIL"]) is str, "Email should be <blah>@<blah>.(com|edu|org|net|gov)"
assert type(test_check["Part Number"]) is str
assert type(test_check["Serial Number"]) is str
In [ ]:
# TODO: check that "DATE" is valid time stamp of the form "MM/DD/YY"
# TODO: check that "ESD_SAFE" is the string 'ESD Safe'.
# assert type(test_check["EMAIL"]) is str, "Email should be <blah>@<blah>.(com|edu|org|net|gov)"
assert test_check["FRONT_ASSEMBLY_PHOTO"] not in placeholder_photos, "Front assembly photo should not be a stock photo"
#assert url_exists(test_check["FRONT_ASSEMBLY_PHOTO"]), "URL for front assembly photo should exist"
assert test_check["BACK_ASSEMBLY_PHOTO"] not in placeholder_photos, "Back assembly photo should not be a stock photo"
#assert url_exists(test_check["BACK_ASSEMBLY_PHOTO"]), "URL for back assembly photo should exist
In [ ]:
assert 'Multimeter' in test_check["Equipment"], "'Multimeter' should be in test_check['Equipment']"
assert 'Oscilloscope' in test_check["Equipment"], "'Oscilloscope' should be in test_check['Equipment']"
assert 'DHU Emulator' in test_check["Equipment"], "'DHU Emulator' should be in test_check['Equipment']"
assert len(test_check["Equipment"]) == 3, "test_check['Equipment'] should not contain superfluous information"
assert type(test_check["Equipment"]["Multimeter"]["Model Number"]) is str, 'Multimeter model number should be a string'
assert type(test_check["Equipment"]["Multimeter"]["Serial Number"]) is str, 'Multimeter serial number should be a string'
assert type(test_check["Equipment"]["Oscilloscope"]["Model Number"]) is str, 'Oscilloscope model number should be a string'
assert type(test_check["Equipment"]["Oscilloscope"]["Serial Number"]) is str, 'Oscilloscope serial number should be a string'
assert type(test_check["Equipment"]["DHU Emulator"]["Model Number"]) is str, 'DHU Emulator model number should be a string'
assert type(test_check["Equipment"]["DHU Emulator"]["Serial Number"]) is str, 'DHU Emulator serial number should be a string'
In [ ]:
assert type(test_check["Assembly Weight"]) is float
assert type(test_check["Non-Flight Configurations"]) is str
In [ ]:
type(1.0)
In [ ]:
type(False)
Below is a summary of test results and notes:
In [ ]:
# TODO: pretty print summary of data, consider incorporating
# - Visual inspection results
# - Operator Notes