From 462f24b31321107834d00016d0b07aa044be5d7e Mon Sep 17 00:00:00 2001 From: Christian Chapman <1360262+enthdegree@users.noreply.github.com> Date: Sun, 16 Apr 2023 10:05:55 -0400 Subject: [PATCH] Aperture priority light meter face (#230) * initial commit, added opt3001 light meter test app * tested working light meter board, i2c communication still has issues * fixed i2c; rudimentary lightmeter works! * added aperture priority ui * added aperture priority ui * added README * adjusted cal * fixed bugs (HI shutter speed, lux mode toggle) * made it possible to advance to the next face * initialized lux variable * lowered tolerance for HI and LO * Changed EV display from always showing EV100 to showing EV[iso setting] * dont display old ev when ISO changes * changed mode and light behavior * updated readme * fixed indentation * made lightmeter display logic more consistent * made lightmeter display logic more consistent * reverted rules.mk (for merge into upstream) * reverted rules.mk (for merge into upstream) * removed OPT3001 PCB model * made lux mode default, corrected timeout behavior --------- Co-authored-by: Christian Chapman --- .../.gitignore | 2 + ...perature + Test Points + OPT3001-cache.lib | 162 +++ ...perature + Test Points + OPT3001.kicad_pcb | 497 +++++++++ ...ture + Test Points + OPT3001.kicad_pcb-bak | 497 +++++++++ .../B1,27.kicad_mod | 16 + .../FH19C9S05SH10-FFC.kicad_mod | 33 + .../_0603MP.kicad_mod | 19 + ...00 Temperature + Test Points + OPT3001.sch | 279 +++++ ...emperature + Test Points + OPT3001.sch-bak | 279 +++++ ...e_+_Test_Points_+_OPT3001-eagle-import.dcm | 3 + ...e_+_Test_Points_+_OPT3001-eagle-import.lib | 990 ++++++++++++++++++ .../empty.kicad_wks | 5 + .../fp-info-cache | 1 + .../fp-lib-table | 4 + .../sym-lib-table | 4 + make.mk | 2 + movement/make/Makefile | 1 + movement/movement_config.h | 2 + movement/movement_faces.h | 1 + movement/watch_faces/sensor/lightmeter_face.c | 206 ++++ movement/watch_faces/sensor/lightmeter_face.h | 160 +++ watch-library/shared/driver/opt3001.c | 91 ++ watch-library/shared/driver/opt3001.h | 87 ++ 23 files changed, 3341 insertions(+) create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001-cache.lib create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb-bak create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/B1,27.kicad_mod create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/FH19C9S05SH10-FFC.kicad_mod create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/_0603MP.kicad_mod create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch-bak create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.dcm create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.lib create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/empty.kicad_wks create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-info-cache create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-lib-table create mode 100644 PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/sym-lib-table create mode 100644 movement/watch_faces/sensor/lightmeter_face.c create mode 100644 movement/watch_faces/sensor/lightmeter_face.h create mode 100644 watch-library/shared/driver/opt3001.c create mode 100644 watch-library/shared/driver/opt3001.h diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore new file mode 100644 index 0000000..88bb66f --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore @@ -0,0 +1,2 @@ +OPT3001DNPT/* + diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001-cache.lib b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001-cache.lib new file mode 100644 index 0000000..90c5680 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001-cache.lib @@ -0,0 +1,162 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# OPT3001DNPT_OPT3001DNPT +# +DEF OPT3001DNPT_OPT3001DNPT U 0 40 Y Y 1 L N +F0 "U" -400 550 50 H V L BNN +F1 "OPT3001DNPT_OPT3001DNPT" -400 -450 50 H V L BNN +F2 "SON65P200X200X65-7N" 0 0 50 H I L BNN +F3 "" 0 0 50 H I L BNN +F4 "0.65" 0 0 50 H I L BNN "ENOM" +F5 "1.9" 0 0 50 H I L BNN "E_MIN" +F6 "0.25" 0 0 50 H I L BNN "L_MIN" +F7 "2.0" 0 0 50 H I L BNN "E_NOM" +F8 "0.65" 0 0 50 H I L BNN "A_MAX" +F9 "0.65" 0 0 50 H I L BNN "E2_NOM" +F10 "IPC 7351B" 0 0 50 H I L BNN "STANDARD" +F11 "01/2018" 0 0 50 H I L BNN "PARTREV" +F12 "0.25" 0 0 50 H I L BNN "B_NOM" +F13 "0.3" 0 0 50 H I L BNN "B_MAX" +F14 "0.2" 0 0 50 H I L BNN "B_MIN" +F15 "6.0" 0 0 50 H I L BNN "PIN_COUNT" +F16 "2.1" 0 0 50 H I L BNN "E_MAX" +F17 "0.35" 0 0 50 H I L BNN "L_MAX" +F18 "Texas Instruments" 0 0 50 H I L BNN "MANUFACTURER" +F19 "1.35" 0 0 50 H I L BNN "D2_NOM" +F20 "0.3" 0 0 50 H I L BNN "L_NOM" +F21 "2.1" 0 0 50 H I L BNN "D_MAX" +F22 "2.0" 0 0 50 H I L BNN "D_NOM" +F23 "1.9" 0 0 50 H I L BNN "D_MIN" +DRAW +S -400 -400 400 500 0 0 10 f +X VDD 1 600 400 200 L 40 40 0 0 W +X ADDR 2 -600 200 200 R 40 40 0 0 I +X GND 3 600 -300 200 L 40 40 0 0 W +X SCL 4 -600 0 200 R 40 40 0 0 I C +X INT 5 600 200 200 L 40 40 0 0 O +X SDA 6 -600 -100 200 R 40 40 0 0 B +X EXP 7 600 -100 200 L 40 40 0 0 P +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_A4L-LOC +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_A4L-LOC #FRAME 0 40 Y Y 1 L N +F0 "#FRAME" 0 0 50 H I C CNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_A4L-LOC" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 8550 600 85 0 1 0 >DRAWING_NAME Normal 0 L B +T 0 8550 400 76 0 1 0 >LAST_DATE_TIME Normal 0 L B +T 0 8995 200 85 0 1 0 >SHEET Normal 0 L B +T 0 8550 800 85 0 1 0 "by joey castillo" Normal 0 L B +T 0 9300 200 85 0 1 0 "cc-by-sa 4.0" Normal 0 L B +T 0 7300 200 180 0 1 0 oddly_specific_objects Normal 0 L B +T 0 8540 195 85 0 1 0 Sheet: Normal 0 L B +P 2 1 0 0 7250 150 7250 950 N +P 2 1 0 0 7250 950 8475 950 N +P 2 1 0 0 8475 350 8475 150 N +P 2 1 0 0 8475 350 8475 550 N +P 2 1 0 0 8475 550 8475 750 N +P 2 1 0 0 8475 550 10100 550 N +P 2 1 0 0 8475 750 8475 950 N +P 2 1 0 0 8475 750 10100 750 N +P 2 1 0 0 8475 950 10100 950 N +P 2 1 0 0 9250 150 9250 350 N +P 2 1 0 0 9250 350 8475 350 N +P 2 1 0 0 9250 350 10100 350 N +P 2 1 0 0 10100 150 10100 350 N +P 2 1 0 0 10100 350 10100 550 N +P 2 1 0 0 10100 550 10100 750 N +P 2 1 0 0 10100 750 10100 950 N +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_FH19C-9S-0.5SH_10-FFC +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_FH19C-9S-0.5SH_10-FFC ~ 0 40 Y Y 1 L N +F0 "" 350 700 59 H V L CNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_FH19C-9S-0.5SH_10-FFC" 350 600 59 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -200 500 -200 -500 N +P 2 1 0 0 -200 500 300 500 N +P 2 1 0 0 300 -500 -200 -500 N +P 2 1 0 0 300 -500 300 500 N +X 1 1 500 400 200 L 50 50 1 0 B +X 2 2 500 300 200 L 50 50 1 0 B +X 3 3 500 200 200 L 50 50 1 0 B +X 4 4 500 100 200 L 50 50 1 0 B +X 5 5 500 0 200 L 50 50 1 0 B +X 6 6 500 -100 200 L 50 50 1 0 B +X 7 7 500 -200 200 L 50 50 1 0 B +X 8 8 500 -300 200 L 50 50 1 0 B +X 9 9 500 -400 200 L 50 50 1 0 B +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_GND +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_GND #GND 0 40 Y Y 1 L P +F0 "#GND" 0 0 50 H I C CNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_GND" -100 -100 59 H V L BNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -75 0 75 0 N +X GND 1 0 100 100 D 0 0 1 0 W +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_RESISTOR_0603MP +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_RESISTOR_0603MP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_RESISTOR_0603MP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_TPB1,27 +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_TPB1,27 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_TPB1,27" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_VCC +# +DEF Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_VCC #P+ 0 40 Y Y 1 L P +F0 "#P+" 0 0 50 H I C CNN +F1 "Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import_VCC" -100 -100 59 V V L BNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 0 0 -50 -75 N +P 2 1 0 0 50 -75 0 0 N +X VCC 1 0 -100 100 U 0 0 1 0 W +ENDDRAW +ENDDEF +# +#End Library diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb new file mode 100644 index 0000000..e13c73a --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb @@ -0,0 +1,497 @@ +(kicad_pcb (version 20171130) (host pcbnew 5.1.9+dfsg1-1+deb11u1) + + (general + (thickness 1.6) + (drawings 22) + (tracks 90) + (zones 0) + (modules 10) + (nets 12) + ) + + (page A4) + (layers + (0 Top signal) + (31 Bottom signal) + (32 B.Adhes user hide) + (33 F.Adhes user hide) + (34 B.Paste user hide) + (35 F.Paste user hide) + (36 B.SilkS user hide) + (37 F.SilkS user) + (38 B.Mask user hide) + (39 F.Mask user hide) + (40 Dwgs.User user hide) + (41 Cmts.User user hide) + (42 Eco1.User user hide) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user hide) + (46 B.CrtYd user hide) + (47 F.CrtYd user hide) + (48 B.Fab user hide) + (49 F.Fab user hide) + ) + + (setup + (last_trace_width 0.25) + (trace_clearance 0.1524) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (via_size 0.8) + (via_drill 0.4) + (via_min_size 0.1) + (via_min_drill 0.254) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (edge_width 0.05) + (segment_width 0.2) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.12) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 1.5 0.27) + (pad_drill 0) + (pad_to_mask_clearance 0) + (aux_axis_origin 0 0) + (visible_elements FFFFFF7F) + (pcbplotparams + (layerselection 0x010fc_ffffffff) + (usegerberextensions false) + (usegerberattributes true) + (usegerberadvancedattributes true) + (creategerberjobfile true) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 GND) + (net 2 VCC) + (net 3 /A0_TEMP_ENABLE) + (net 4 /SCL) + (net 5 /SDA) + (net 6 /A1_SERCOM3.3_TC3.1) + (net 7 /A2_TEMP_SENSE) + (net 8 /NC) + (net 9 /A4_SERCOM3.2_TC3.0) + (net 10 "Net-(U1-Pad7)") + (net 11 "Net-(U1-Pad5)") + + (net_class Default "This is the default net class." + (clearance 0.1524) + (trace_width 0.25) + (via_dia 0.8) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net /A0_TEMP_ENABLE) + (add_net /A1_SERCOM3.3_TC3.1) + (add_net /A2_TEMP_SENSE) + (add_net /A4_SERCOM3.2_TC3.0) + (add_net /NC) + (add_net /SCL) + (add_net /SDA) + (add_net GND) + (add_net "Net-(U1-Pad5)") + (add_net "Net-(U1-Pad7)") + (add_net VCC) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:FH19C9S05SH10-FFC" (layer Top) (tedit 0) (tstamp 63E6D203) + (at 153.2255 106.5556) + (descr "FH19C-9S-0.5SH(10)-1
\n") + (path /54307519) + (fp_text reference U$3 (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_text value FH19C-9S-0.5SH_10-FFC (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_poly (pts (xy -2.4902 0.9742) (xy 2.4882 0.9742) (xy 2.4892 3.4798) (xy -2.4892 3.4798)) (layer B.Mask) (width 0)) + (fp_line (start 2.4892 0) (end 2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_line (start -2.3392 3.5) (end 2.3392 3.5) (layer Edge.Cuts) (width 0.05)) + (fp_line (start -2.4892 0) (end -2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_arc (start -2.3392 3.35) (end -2.3392 3.5) (angle 90) (layer Edge.Cuts) (width 0.05)) + (fp_arc (start 2.3392 3.35) (end 2.3392 3.5) (angle -90) (layer Edge.Cuts) (width 0.05)) + (pad 1 smd rect (at 2 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 2 VCC) (solder_mask_margin 0.0635)) + (pad 2 smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 1 GND) (solder_mask_margin 0.0635)) + (pad 3 smd rect (at 1 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 9 /A4_SERCOM3.2_TC3.0) (solder_mask_margin 0.0635)) + (pad 4 smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 8 /NC) (solder_mask_margin 0.0635)) + (pad 5 smd rect (at 0 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + (pad 6 smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 6 /A1_SERCOM3.3_TC3.1) (solder_mask_margin 0.0635)) + (pad 7 smd rect (at -1 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 5 /SDA) (solder_mask_margin 0.0635)) + (pad 8 smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 4 /SCL) (solder_mask_margin 0.0635)) + (pad 9 smd rect (at -2 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 3 /A0_TEMP_ENABLE) (solder_mask_margin 0.0635)) + ) + + (module OPT3001DNPT:SON65P200X200X65-7N (layer Top) (tedit 63E6D415) (tstamp 63E73FD8) + (at 142.748 102.87 270) + (path /63E70E51) + (attr smd) + (fp_text reference U1 (at 0.54 -2.008 90) (layer F.SilkS) hide + (effects (font (size 0.8 0.8) (thickness 0.15))) + ) + (fp_text value OPT3001DNPT (at 7.652 2.008 90) (layer F.Fab) hide + (effects (font (size 0.8 0.8) (thickness 0.15))) + ) + (fp_line (start 1.615 -1.25) (end 1.615 1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.615 -1.25) (end -1.615 1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.615 1.25) (end 1.615 1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.615 -1.25) (end 1.615 -1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1 -1) (end 1 1) (layer F.Fab) (width 0.127)) + (fp_line (start -1 -1) (end -1 1) (layer F.Fab) (width 0.127)) + (fp_line (start -1 1.099) (end 1 1.099) (layer F.SilkS) (width 0.127)) + (fp_line (start -1 -1.099) (end 1 -1.099) (layer F.SilkS) (width 0.127)) + (fp_line (start -1 1) (end 1 1) (layer F.Fab) (width 0.127)) + (fp_line (start -1 -1) (end 1 -1) (layer F.Fab) (width 0.127)) + (fp_circle (center -1.935 -0.65) (end -1.835 -0.65) (layer F.Fab) (width 0.2)) + (fp_circle (center -1.935 -0.65) (end -1.835 -0.65) (layer F.SilkS) (width 0.2)) + (fp_poly (pts (xy -0.21 -0.43) (xy 0.21 -0.43) (xy 0.21 0.43) (xy -0.21 0.43)) (layer F.Paste) (width 0.01)) + (pad 1 smd roundrect (at -1.37 -0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 2 VCC)) + (pad 2 smd roundrect (at -1.37 0 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 1 GND)) + (pad 3 smd roundrect (at -1.37 0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 1 GND)) + (pad 4 smd roundrect (at 1.37 0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 4 /SCL)) + (pad 5 smd roundrect (at 1.37 0 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 11 "Net-(U1-Pad5)")) + (pad 6 smd roundrect (at 1.37 -0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 5 /SDA)) + (pad 7 smd rect (at 0 0 270) (size 0.65 1.35) (layers Top F.Mask) + (net 10 "Net-(U1-Pad7)")) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" (layer Top) (tedit 0) (tstamp 63E759D2) + (at 146.2659 104.7522 270) + (descr "0603 MicroPitch") + (path /05CBC8DB) + (fp_text reference R1 (at -0.0635 1.7145 90) (layer F.SilkS) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_text value "1% 10K" (at -0.9525 0.9525 90) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_line (start -0.432 0.306) (end 0.432 0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0 -0.254) (end 0 0.254) (layer F.SilkS) (width 0.2032)) + (fp_poly (pts (xy 0.4318 0.4) (xy 0.8 0.4) (xy 0.8 -0.4) (xy 0.4318 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.8 0.4) (xy -0.4318 0.4) (xy -0.4318 -0.4) (xy -0.8 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.1999 0.25) (xy 0.1999 0.25) (xy 0.1999 -0.25) (xy -0.1999 -0.25)) (layer F.Adhes) (width 0)) + (pad 2 smd rect (at 0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 3 /A0_TEMP_ENABLE) (solder_mask_margin 0.0635)) + (pad 1 smd rect (at -0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" (layer Top) (tedit 0) (tstamp 63E759F3) + (at 146.2659 102.1868 270) + (descr "0603 MicroPitch") + (path /6C7771A6) + (fp_text reference RT1 (at -0.127 1.778 90) (layer F.SilkS) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_text value "NTC 10K" (at -1.27 1.4923 90) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_line (start -0.432 0.306) (end 0.432 0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0 -0.254) (end 0 0.254) (layer F.SilkS) (width 0.2032)) + (fp_poly (pts (xy 0.4318 0.4) (xy 0.8 0.4) (xy 0.8 -0.4) (xy 0.4318 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.8 0.4) (xy -0.4318 0.4) (xy -0.4318 -0.4) (xy -0.8 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.1999 0.25) (xy 0.1999 0.25) (xy 0.1999 -0.25) (xy -0.1999 -0.25)) (layer F.Adhes) (width 0)) + (pad 2 smd rect (at 0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + (pad 1 smd rect (at -0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 2 VCC) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D22B) + (at 146.1135 102.8472 180) + (descr "TEST PAD") + (path /8E097FD0) + (fp_text reference GND1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 1 GND) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D232) + (at 144.0815 101.2216 180) + (descr "TEST PAD") + (path /E65641C5) + (fp_text reference A4 (at 1.524 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 9 /A4_SERCOM3.2_TC3.0) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D239) + (at 146.1135 101.2216 180) + (descr "TEST PAD") + (path /D0DD1D8E) + (fp_text reference VCC1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 2 VCC) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D240) + (at 146.1135 104.4728 180) + (descr "TEST PAD") + (path /252148C1) + (fp_text reference SCL1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 4 /SCL) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D247) + (at 144.0815 104.4728 180) + (descr "TEST PAD") + (path /943CED1C) + (fp_text reference SDA1 (at 1.778 -0.0127) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 5 /SDA) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D24E) + (at 144.0815 102.8472 180) + (descr "TEST PAD") + (path /E1B0505C) + (fp_text reference A1 (at 1.524 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 6 /A1_SERCOM3.3_TC3.1) (solder_mask_margin 0.0635)) + ) + + (gr_arc (start 150.4823 106.5556) (end 150.7363 106.5556) (angle -90) (layer Edge.Cuts) (width 0.05) (tstamp 803D32C0)) + (gr_line (start 150.4823 106.3016) (end 145.7325 106.3016) (layer Edge.Cuts) (width 0.05) (tstamp 803D3820)) + (gr_line (start 145.0975 105.6666) (end 142.1765 105.6666) (layer Edge.Cuts) (width 0.05) (tstamp 803D3C70)) + (gr_arc (start 142.1765 104.7776) (end 142.1765 105.6666) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 63E7417A)) + (gr_line (start 141.2875 104.7776) (end 141.2875 100.8406) (layer Edge.Cuts) (width 0.05) (tstamp 63E75941)) + (gr_arc (start 142.1765 100.8406) (end 141.2875 100.8406) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 63E74180)) + (gr_line (start 142.1765 99.9516) (end 155.3337 99.9516) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B000)) + (gr_arc (start 155.3337 100.3326) (end 155.3337 99.9516) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B410)) + (gr_line (start 155.7147 100.3326) (end 155.7147 106.5556) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B950)) + (gr_arc (start 145.0975 106.3016) (end 145.7325 106.3016) (angle -90) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9BE00)) + (gr_text "OPT3001 I2C\nSensor Board" (at 151.4475 100.2056) (layer F.SilkS) (tstamp 7FC58850) + (effects (font (size 0.57912 0.57912) (thickness 0.109728)) (justify top)) + ) + (gr_line (start 155.7147 105.2856) (end 147.5105 105.2856) (layer F.SilkS) (width 0.127) (tstamp 7FC58F50)) + (gr_line (start 147.0025 100.7136) (end 147.0025 104.7776) (layer F.SilkS) (width 0.127) (tstamp 7FA4B140)) + (gr_arc (start 147.5105 104.7776) (end 147.0025 104.7776) (angle -90) (layer F.SilkS) (width 0.127) (tstamp 7FA4B6B0)) + (gr_arc (start 146.2405 100.7136) (end 147.0025 100.7136) (angle -90) (layer F.SilkS) (width 0.127) (tstamp 7FA4BCC0)) + (gr_text "A0: Thermistor !EN\nA2: Temp. Sense\nA1/A4/SDA/SCL:\nTest Points" (at 151.4475 102.1106) (layer F.SilkS) (tstamp 7FA08AA0) + (effects (font (size 0.4826 0.4826) (thickness 0.06096)) (justify top)) + ) + (gr_text "Digital IO\nAnalog input\nPWM on TC3\nUART RX/TX\nInterrupt 1/0\nA4 ONLY: Ext. wake 0" (at 155.5115 101.2216) (layer B.SilkS) (tstamp 7FA09230) + (effects (font (size 0.4826 0.4826) (thickness 0.06096)) (justify left top mirror)) + ) + (gr_text "A1/A4 Uses" (at 155.5115 100.2056) (layer B.SilkS) (tstamp 7F9A10A0) + (effects (font (size 0.57912 0.57912) (thickness 0.109728)) (justify left top mirror)) + ) + (gr_text "" (at 142.9385 104.1172) (layer F.SilkS) (tstamp 7F9A17A0) + (effects (font (size 0.57912 0.57912) (thickness 0.073152)) (justify left)) + ) + (gr_text "" (at 142.9385 101.5518) (layer F.SilkS) (tstamp 7F9A1E50) + (effects (font (size 0.57912 0.57912) (thickness 0.073152)) (justify left)) + ) + (dimension 3 (width 0.12) (layer F.SilkS) + (gr_text "3.000 mm" (at 160.9575 108.5016 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (feature1 (pts (xy 156.0875 107.0016) (xy 160.273921 107.0016))) + (feature2 (pts (xy 156.0875 110.0016) (xy 160.273921 110.0016))) + (crossbar (pts (xy 159.6875 110.0016) (xy 159.6875 107.0016))) + (arrow1a (pts (xy 159.6875 107.0016) (xy 160.273921 108.128104))) + (arrow1b (pts (xy 159.6875 107.0016) (xy 159.101079 108.128104))) + (arrow2a (pts (xy 159.6875 110.0016) (xy 160.273921 108.875096))) + (arrow2b (pts (xy 159.6875 110.0016) (xy 159.101079 108.875096))) + ) + (gr_text "Stiffener only\nin this area" (at 159.5755 108.5876) (layer F.SilkS) (tstamp 7F95BC90) + (effects (font (size 0.57912 0.57912) (thickness 0.109728))) + ) + + (segment (start 148.082 100.457) (end 148.137 100.457) (width 0.25) (layer Bottom) (net 0)) + (segment (start 142.098 101.5) (end 142.748 101.5) (width 0.25) (layer Top) (net 1)) + (via (at 142.494 100.529) (size 0.8) (drill 0.4) (layers Top Bottom) (net 1)) + (segment (start 142.748 100.783) (end 142.494 100.529) (width 0.25) (layer Top) (net 1)) + (segment (start 142.748 101.5) (end 142.748 100.783) (width 0.25) (layer Top) (net 1)) + (segment (start 142.494 100.529) (end 142.76899 100.25401) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.201089 100.256533) (end 145.201089 101.934789) (width 0.25) (layer Bottom) (net 1)) + (segment (start 142.76899 100.25401) (end 145.198566 100.25401) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.198566 100.25401) (end 145.201089 100.256533) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.201089 101.934789) (end 146.1135 102.8472) (width 0.25) (layer Bottom) (net 1)) + (segment (start 147.022102 101.938598) (end 146.1135 102.8472) (width 0.25) (layer Bottom) (net 1)) + (segment (start 154.7255 104.319944) (end 152.344154 101.938598) (width 0.25) (layer Bottom) (net 1)) + (segment (start 152.344154 101.938598) (end 147.022102 101.938598) (width 0.25) (layer Bottom) (net 1)) + (segment (start 154.7255 108.8056) (end 154.7255 104.319944) (width 0.25) (layer Bottom) (net 1)) + (via (at 146.939 101.219) (size 0.8) (drill 0.4) (layers Top Bottom) (net 2)) + (segment (start 152.129838 100.901187) (end 147.822498 100.901187) (width 0.25) (layer Bottom) (net 2)) + (segment (start 146.1161 101.219) (end 146.1135 101.2216) (width 0.25) (layer Bottom) (net 2)) + (segment (start 147.822498 100.901187) (end 147.504685 101.219) (width 0.25) (layer Bottom) (net 2)) + (segment (start 155.2255 103.996849) (end 152.129838 100.901187) (width 0.25) (layer Bottom) (net 2)) + (segment (start 146.939 101.219) (end 146.1161 101.219) (width 0.25) (layer Bottom) (net 2)) + (segment (start 155.2255 108.8056) (end 155.2255 103.996849) (width 0.25) (layer Bottom) (net 2)) + (segment (start 147.504685 101.219) (end 146.939 101.219) (width 0.25) (layer Bottom) (net 2)) + (segment (start 143.398 101.5) (end 143.573651 101.675651) (width 0.25) (layer Top) (net 2)) + (segment (start 143.573651 101.675651) (end 146.142049 101.675651) (width 0.25) (layer Top) (net 2)) + (segment (start 146.142049 101.675651) (end 146.3929 101.4248) (width 0.25) (layer Top) (net 2)) + (segment (start 146.3929 101.4248) (end 146.7332 101.4248) (width 0.25) (layer Top) (net 2)) + (segment (start 146.7332 101.4248) (end 146.939 101.219) (width 0.25) (layer Top) (net 2)) + (via (at 147.828 105.664) (size 0.8) (drill 0.4) (layers Top Bottom) (net 3)) + (segment (start 147.6782 105.5142) (end 147.828 105.664) (width 0.25) (layer Top) (net 3)) + (segment (start 146.3929 105.5142) (end 147.6782 105.5142) (width 0.25) (layer Top) (net 3)) + (segment (start 151.2255 106.512573) (end 151.2255 108.8056) (width 0.25) (layer Bottom) (net 3)) + (segment (start 150.712117 105.99919) (end 151.2255 106.512573) (width 0.25) (layer Bottom) (net 3)) + (segment (start 148.16319 105.99919) (end 150.712117 105.99919) (width 0.25) (layer Bottom) (net 3)) + (segment (start 147.828 105.664) (end 148.16319 105.99919) (width 0.25) (layer Bottom) (net 3)) + (segment (start 142.37541 105.26741) (end 145.075078 105.26741) (width 0.25) (layer Top) (net 4)) + (via (at 145.243931 105.098557) (size 0.8) (drill 0.4) (layers Top Bottom) (net 4)) + (segment (start 142.098 104.99) (end 142.37541 105.26741) (width 0.25) (layer Top) (net 4)) + (segment (start 142.098 104.24) (end 142.098 104.99) (width 0.25) (layer Top) (net 4)) + (segment (start 145.075078 105.26741) (end 145.243931 105.098557) (width 0.25) (layer Top) (net 4)) + (segment (start 145.487743 105.098557) (end 146.1135 104.4728) (width 0.25) (layer Bottom) (net 4)) + (segment (start 145.243931 105.098557) (end 145.487743 105.098557) (width 0.25) (layer Bottom) (net 4)) + (segment (start 150.674396 105.392376) (end 151.7255 106.44348) (width 0.25) (layer Bottom) (net 4)) + (segment (start 150.421816 105.392376) (end 150.674396 105.392376) (width 0.25) (layer Bottom) (net 4)) + (segment (start 146.1135 104.4728) (end 149.50224 104.4728) (width 0.25) (layer Bottom) (net 4)) + (segment (start 151.7255 106.44348) (end 151.7255 108.8056) (width 0.25) (layer Bottom) (net 4)) + (segment (start 149.50224 104.4728) (end 150.421816 105.392376) (width 0.25) (layer Bottom) (net 4)) + (segment (start 143.398 104.24) (end 145.007 104.24) (width 0.25) (layer Top) (net 5)) + (segment (start 145.007 104.24) (end 145.381654 104.24) (width 0.25) (layer Top) (net 5)) + (segment (start 152.2255 108.8056) (end 152.2255 106.193504) (width 0.25) (layer Bottom) (net 5)) + (segment (start 145.381654 104.24) (end 145.856628 104.714974) (width 0.25) (layer Top) (net 5)) + (segment (start 145.856628 104.714974) (end 150.74697 104.714974) (width 0.25) (layer Top) (net 5)) + (via (at 150.74697 104.714974) (size 0.8) (drill 0.4) (layers Top Bottom) (net 5)) + (segment (start 152.2255 106.193504) (end 150.74697 104.714974) (width 0.25) (layer Bottom) (net 5)) + (via (at 145.034 103.886) (size 0.8) (drill 0.4) (layers Top Bottom) (net 5)) + (segment (start 145.034 103.886) (end 145.007 103.913) (width 0.25) (layer Top) (net 5)) + (segment (start 144.4472 104.4728) (end 145.034 103.886) (width 0.25) (layer Bottom) (net 5)) + (segment (start 144.0815 104.4728) (end 144.4472 104.4728) (width 0.25) (layer Bottom) (net 5)) + (segment (start 145.007 103.913) (end 145.007 104.24) (width 0.25) (layer Top) (net 5)) + (via (at 148.336 103.52461) (size 0.8) (drill 0.4) (layers Top Bottom) (net 6)) + (segment (start 152.7255 106.045058) (end 151.490164 104.809722) (width 0.25) (layer Bottom) (net 6)) + (segment (start 151.490164 104.35972) (end 150.655054 103.52461) (width 0.25) (layer Bottom) (net 6)) + (segment (start 152.7255 108.8056) (end 152.7255 106.045058) (width 0.25) (layer Bottom) (net 6)) + (segment (start 151.490164 104.809722) (end 151.490164 104.35972) (width 0.25) (layer Bottom) (net 6)) + (segment (start 150.655054 103.52461) (end 148.336 103.52461) (width 0.25) (layer Bottom) (net 6)) + (via (at 144.899309 102.94316) (size 0.8) (drill 0.4) (layers Top Bottom) (net 6)) + (segment (start 144.803349 102.8472) (end 144.899309 102.94316) (width 0.25) (layer Bottom) (net 6)) + (segment (start 144.0815 102.8472) (end 144.803349 102.8472) (width 0.25) (layer Bottom) (net 6)) + (segment (start 144.899309 102.94316) (end 145.57107 102.271399) (width 0.25) (layer Top) (net 6)) + (segment (start 145.57107 102.271399) (end 147.082789 102.271399) (width 0.25) (layer Top) (net 6)) + (segment (start 147.082789 102.271399) (end 148.336 103.52461) (width 0.25) (layer Top) (net 6)) + (segment (start 146.2659 103.9902) (end 146.2659 102.9488) (width 0.254) (layer Top) (net 7) (tstamp 63E759C5)) + (segment (start 153.2255 105.415504) (end 152.231065 104.421069) (width 0.25) (layer Bottom) (net 7)) + (segment (start 148.842094 104.02107) (end 151.831066 104.02107) (width 0.25) (layer Top) (net 7)) + (via (at 152.231065 104.421069) (size 0.8) (drill 0.4) (layers Top Bottom) (net 7)) + (segment (start 148.661153 104.202011) (end 148.842094 104.02107) (width 0.25) (layer Top) (net 7)) + (segment (start 146.3929 103.9902) (end 146.604711 104.202011) (width 0.25) (layer Top) (net 7)) + (segment (start 146.604711 104.202011) (end 148.661153 104.202011) (width 0.25) (layer Top) (net 7)) + (segment (start 151.831066 104.02107) (end 152.231065 104.421069) (width 0.25) (layer Top) (net 7)) + (segment (start 153.2255 108.8056) (end 153.2255 105.415504) (width 0.25) (layer Bottom) (net 7)) + (via (at 152.019 102.616) (size 0.8) (drill 0.4) (layers Top Bottom) (net 9)) + (segment (start 154.2255 104.8225) (end 152.019 102.616) (width 0.25) (layer Bottom) (net 9)) + (segment (start 154.2255 108.8056) (end 154.2255 104.8225) (width 0.25) (layer Bottom) (net 9)) + (segment (start 149.733 100.33) (end 147.574 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 152.019 102.616) (end 149.733 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 147.574 100.33) (end 147.955 100.33) (width 0.25) (layer Top) (net 9)) + (via (at 144.523679 100.981868) (size 0.8) (drill 0.4) (layers Top Bottom) (net 9)) + (segment (start 144.0815 101.2216) (end 144.283947 101.2216) (width 0.25) (layer Bottom) (net 9)) + (segment (start 144.283947 101.2216) (end 144.523679 100.981868) (width 0.25) (layer Bottom) (net 9)) + (segment (start 144.523679 100.981868) (end 145.175547 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 145.175547 100.33) (end 147.574 100.33) (width 0.25) (layer Top) (net 9)) + +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb-bak b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb-bak new file mode 100644 index 0000000..bff4000 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.kicad_pcb-bak @@ -0,0 +1,497 @@ +(kicad_pcb (version 20171130) (host pcbnew 5.1.9+dfsg1-1+deb11u1) + + (general + (thickness 1.6) + (drawings 22) + (tracks 90) + (zones 0) + (modules 10) + (nets 12) + ) + + (page A4) + (layers + (0 Top signal) + (31 Bottom signal) + (32 B.Adhes user hide) + (33 F.Adhes user hide) + (34 B.Paste user hide) + (35 F.Paste user hide) + (36 B.SilkS user hide) + (37 F.SilkS user) + (38 B.Mask user hide) + (39 F.Mask user hide) + (40 Dwgs.User user hide) + (41 Cmts.User user hide) + (42 Eco1.User user hide) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user hide) + (46 B.CrtYd user hide) + (47 F.CrtYd user hide) + (48 B.Fab user hide) + (49 F.Fab user hide) + ) + + (setup + (last_trace_width 0.25) + (trace_clearance 0.1524) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (via_size 0.8) + (via_drill 0.4) + (via_min_size 0.1) + (via_min_drill 0.254) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (edge_width 0.05) + (segment_width 0.2) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.12) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 1.5 0.27) + (pad_drill 0) + (pad_to_mask_clearance 0) + (aux_axis_origin 0 0) + (visible_elements FFFFFF7F) + (pcbplotparams + (layerselection 0x010fc_ffffffff) + (usegerberextensions false) + (usegerberattributes true) + (usegerberadvancedattributes true) + (creategerberjobfile true) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 GND) + (net 2 VCC) + (net 3 /A0_TEMP_ENABLE) + (net 4 /SCL) + (net 5 /SDA) + (net 6 /A1_SERCOM3.3_TC3.1) + (net 7 /A2_TEMP_SENSE) + (net 8 /NC) + (net 9 /A4_SERCOM3.2_TC3.0) + (net 10 "Net-(U1-Pad7)") + (net 11 "Net-(U1-Pad5)") + + (net_class Default "This is the default net class." + (clearance 0.1524) + (trace_width 0.25) + (via_dia 0.8) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net /A0_TEMP_ENABLE) + (add_net /A1_SERCOM3.3_TC3.1) + (add_net /A2_TEMP_SENSE) + (add_net /A4_SERCOM3.2_TC3.0) + (add_net /NC) + (add_net /SCL) + (add_net /SDA) + (add_net GND) + (add_net "Net-(U1-Pad5)") + (add_net "Net-(U1-Pad7)") + (add_net VCC) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:FH19C9S05SH10-FFC" (layer Top) (tedit 0) (tstamp 63E6D203) + (at 153.2255 106.5556) + (descr "FH19C-9S-0.5SH(10)-1
\n") + (path /54307519) + (fp_text reference U$3 (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_text value FH19C-9S-0.5SH_10-FFC (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_arc (start -2.3392 3.35) (end -2.3392 3.5) (angle 90) (layer Edge.Cuts) (width 0.05)) + (fp_arc (start 2.3392 3.35) (end 2.3392 3.5) (angle -90) (layer Edge.Cuts) (width 0.05)) + (fp_line (start -2.4892 0) (end -2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_line (start -2.3392 3.5) (end 2.3392 3.5) (layer Edge.Cuts) (width 0.05)) + (fp_line (start 2.4892 0) (end 2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_poly (pts (xy -2.4902 0.9742) (xy 2.4882 0.9742) (xy 2.4892 3.4798) (xy -2.4892 3.4798)) (layer B.Mask) (width 0)) + (pad 1 smd rect (at 2 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 2 VCC) (solder_mask_margin 0.0635)) + (pad 2 smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 1 GND) (solder_mask_margin 0.0635)) + (pad 3 smd rect (at 1 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 9 /A4_SERCOM3.2_TC3.0) (solder_mask_margin 0.0635)) + (pad 4 smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 8 /NC) (solder_mask_margin 0.0635)) + (pad 5 smd rect (at 0 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + (pad 6 smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 6 /A1_SERCOM3.3_TC3.1) (solder_mask_margin 0.0635)) + (pad 7 smd rect (at -1 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 5 /SDA) (solder_mask_margin 0.0635)) + (pad 8 smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 4 /SCL) (solder_mask_margin 0.0635)) + (pad 9 smd rect (at -2 2.25 90) (size 2.5 0.347) (layers Bottom B.Mask) + (net 3 /A0_TEMP_ENABLE) (solder_mask_margin 0.0635)) + ) + + (module OPT3001DNPT:SON65P200X200X65-7N (layer Top) (tedit 63E6D415) (tstamp 63E73FD8) + (at 142.748 102.87 270) + (path /63E70E51) + (attr smd) + (fp_text reference U1 (at 0.54 -2.008 90) (layer F.SilkS) hide + (effects (font (size 0.8 0.8) (thickness 0.15))) + ) + (fp_text value OPT3001DNPT (at 7.652 2.008 90) (layer F.Fab) hide + (effects (font (size 0.8 0.8) (thickness 0.15))) + ) + (fp_poly (pts (xy -0.21 -0.43) (xy 0.21 -0.43) (xy 0.21 0.43) (xy -0.21 0.43)) (layer F.Paste) (width 0.01)) + (fp_circle (center -1.935 -0.65) (end -1.835 -0.65) (layer F.SilkS) (width 0.2)) + (fp_circle (center -1.935 -0.65) (end -1.835 -0.65) (layer F.Fab) (width 0.2)) + (fp_line (start -1 -1) (end 1 -1) (layer F.Fab) (width 0.127)) + (fp_line (start -1 1) (end 1 1) (layer F.Fab) (width 0.127)) + (fp_line (start -1 -1.099) (end 1 -1.099) (layer F.SilkS) (width 0.127)) + (fp_line (start -1 1.099) (end 1 1.099) (layer F.SilkS) (width 0.127)) + (fp_line (start -1 -1) (end -1 1) (layer F.Fab) (width 0.127)) + (fp_line (start 1 -1) (end 1 1) (layer F.Fab) (width 0.127)) + (fp_line (start -1.615 -1.25) (end 1.615 -1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.615 1.25) (end 1.615 1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.615 -1.25) (end -1.615 1.25) (layer F.CrtYd) (width 0.05)) + (fp_line (start 1.615 -1.25) (end 1.615 1.25) (layer F.CrtYd) (width 0.05)) + (pad 1 smd roundrect (at -1.37 -0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 2 VCC)) + (pad 2 smd roundrect (at -1.37 0 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 1 GND)) + (pad 3 smd roundrect (at -1.37 0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 1 GND)) + (pad 4 smd roundrect (at 1.37 0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 4 /SCL)) + (pad 5 smd roundrect (at 1.37 0 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 11 "Net-(U1-Pad5)")) + (pad 6 smd roundrect (at 1.37 -0.65 270) (size 1.5 0.27) (layers Top F.Paste F.Mask) (roundrect_rratio 0.03) + (net 5 /SDA)) + (pad 7 smd rect (at 0 0 270) (size 0.65 1.35) (layers Top F.Mask) + (net 10 "Net-(U1-Pad7)")) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" (layer Top) (tedit 0) (tstamp 63E759D2) + (at 146.2659 104.7522 270) + (descr "0603 MicroPitch") + (path /05CBC8DB) + (fp_text reference R1 (at -0.0635 1.7145 90) (layer F.SilkS) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_text value "1% 10K" (at -0.9525 0.9525 90) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_poly (pts (xy -0.1999 0.25) (xy 0.1999 0.25) (xy 0.1999 -0.25) (xy -0.1999 -0.25)) (layer F.Adhes) (width 0)) + (fp_poly (pts (xy -0.8 0.4) (xy -0.4318 0.4) (xy -0.4318 -0.4) (xy -0.8 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy 0.4318 0.4) (xy 0.8 0.4) (xy 0.8 -0.4) (xy 0.4318 -0.4)) (layer F.Fab) (width 0)) + (fp_line (start 0 -0.254) (end 0 0.254) (layer F.SilkS) (width 0.2032)) + (fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start -0.432 0.306) (end 0.432 0.306) (layer F.Fab) (width 0.1016)) + (pad 2 smd rect (at 0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 3 /A0_TEMP_ENABLE) (solder_mask_margin 0.0635)) + (pad 1 smd rect (at -0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" (layer Top) (tedit 0) (tstamp 63E759F3) + (at 146.2659 102.1868 270) + (descr "0603 MicroPitch") + (path /6C7771A6) + (fp_text reference RT1 (at -0.127 1.778 90) (layer F.SilkS) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_text value "NTC 10K" (at -1.27 1.4923 90) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_poly (pts (xy -0.1999 0.25) (xy 0.1999 0.25) (xy 0.1999 -0.25) (xy -0.1999 -0.25)) (layer F.Adhes) (width 0)) + (fp_poly (pts (xy -0.8 0.4) (xy -0.4318 0.4) (xy -0.4318 -0.4) (xy -0.8 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy 0.4318 0.4) (xy 0.8 0.4) (xy 0.8 -0.4) (xy 0.4318 -0.4)) (layer F.Fab) (width 0)) + (fp_line (start 0 -0.254) (end 0 0.254) (layer F.SilkS) (width 0.2032)) + (fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start -0.432 0.306) (end 0.432 0.306) (layer F.Fab) (width 0.1016)) + (pad 2 smd rect (at 0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 7 /A2_TEMP_SENSE) (solder_mask_margin 0.0635)) + (pad 1 smd rect (at -0.762 0 270) (size 0.8 0.8) (layers Top F.Paste F.Mask) + (net 2 VCC) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D22B) + (at 146.1135 102.8472 180) + (descr "TEST PAD") + (path /8E097FD0) + (fp_text reference GND1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 1 GND) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D232) + (at 144.0815 101.2216 180) + (descr "TEST PAD") + (path /E65641C5) + (fp_text reference A4 (at 1.524 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 9 /A4_SERCOM3.2_TC3.0) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D239) + (at 146.1135 101.2216 180) + (descr "TEST PAD") + (path /D0DD1D8E) + (fp_text reference VCC1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 2 VCC) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D240) + (at 146.1135 104.4728 180) + (descr "TEST PAD") + (path /252148C1) + (fp_text reference SCL1 (at -1.778 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 4 /SCL) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D247) + (at 144.0815 104.4728 180) + (descr "TEST PAD") + (path /943CED1C) + (fp_text reference SDA1 (at 1.778 -0.0127) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 5 /SDA) (solder_mask_margin 0.0635)) + ) + + (module "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" (layer Bottom) (tedit 0) (tstamp 63E6D24E) + (at 144.0815 102.8472 180) + (descr "TEST PAD") + (path /E1B0505C) + (fp_text reference A1 (at 1.524 0) (layer B.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify right bottom mirror)) + ) + (fp_text value TPB1,27 (at -0.635 -0.762) (layer B.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify right bottom mirror)) + ) + (fp_line (start 0 0.635) (end 0 -0.635) (layer Dwgs.User) (width 0.0024)) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 -1.905 180) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify right bottom)) + ) + (pad TP smd roundrect (at 0 0 180) (size 1.27 1.27) (layers Bottom B.Mask) (roundrect_rratio 0.5) + (net 6 /A1_SERCOM3.3_TC3.1) (solder_mask_margin 0.0635)) + ) + + (gr_arc (start 150.4823 106.5556) (end 150.7363 106.5556) (angle -90) (layer Edge.Cuts) (width 0.05) (tstamp 803D32C0)) + (gr_line (start 150.4823 106.3016) (end 145.7325 106.3016) (layer Edge.Cuts) (width 0.05) (tstamp 803D3820)) + (gr_line (start 145.0975 105.6666) (end 142.1765 105.6666) (layer Edge.Cuts) (width 0.05) (tstamp 803D3C70)) + (gr_arc (start 142.1765 104.7776) (end 142.1765 105.6666) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 63E7417A)) + (gr_line (start 141.2875 104.7776) (end 141.2875 100.8406) (layer Edge.Cuts) (width 0.05) (tstamp 63E75941)) + (gr_arc (start 142.1765 100.8406) (end 141.2875 100.8406) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 63E74180)) + (gr_line (start 142.1765 99.9516) (end 155.3337 99.9516) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B000)) + (gr_arc (start 155.3337 100.3326) (end 155.3337 99.9516) (angle 90) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B410)) + (gr_line (start 155.7147 100.3326) (end 155.7147 106.5556) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9B950)) + (gr_arc (start 145.0975 106.3016) (end 145.7325 106.3016) (angle -90) (layer Edge.Cuts) (width 0.05) (tstamp 7FB9BE00)) + (gr_text "OPT3001 I2C\nSensor Board" (at 151.4475 100.2056) (layer F.SilkS) (tstamp 7FC58850) + (effects (font (size 0.57912 0.57912) (thickness 0.109728)) (justify top)) + ) + (gr_line (start 155.7147 105.2856) (end 147.5105 105.2856) (layer F.SilkS) (width 0.127) (tstamp 7FC58F50)) + (gr_line (start 147.0025 100.7136) (end 147.0025 104.7776) (layer F.SilkS) (width 0.127) (tstamp 7FA4B140)) + (gr_arc (start 147.5105 104.7776) (end 147.0025 104.7776) (angle -90) (layer F.SilkS) (width 0.127) (tstamp 7FA4B6B0)) + (gr_arc (start 146.2405 100.7136) (end 147.0025 100.7136) (angle -90) (layer F.SilkS) (width 0.127) (tstamp 7FA4BCC0)) + (gr_text "A0: Thermistor !EN\nA2: Temp. Sense\nA1/A4/SDA/SCL:\nTest Points" (at 151.4475 102.1106) (layer F.SilkS) (tstamp 7FA08AA0) + (effects (font (size 0.4826 0.4826) (thickness 0.06096)) (justify top)) + ) + (gr_text "Digital IO\nAnalog input\nPWM on TC3\nUART RX/TX\nInterrupt 1/0\nA4 ONLY: Ext. wake 0" (at 155.5115 101.2216) (layer B.SilkS) (tstamp 7FA09230) + (effects (font (size 0.4826 0.4826) (thickness 0.06096)) (justify left top mirror)) + ) + (gr_text "A1/A4 Uses" (at 155.5115 100.2056) (layer B.SilkS) (tstamp 7F9A10A0) + (effects (font (size 0.57912 0.57912) (thickness 0.109728)) (justify left top mirror)) + ) + (gr_text "" (at 142.9385 104.1172) (layer F.SilkS) (tstamp 7F9A17A0) + (effects (font (size 0.57912 0.57912) (thickness 0.073152)) (justify left)) + ) + (gr_text "" (at 142.9385 101.5518) (layer F.SilkS) (tstamp 7F9A1E50) + (effects (font (size 0.57912 0.57912) (thickness 0.073152)) (justify left)) + ) + (dimension 3 (width 0.12) (layer F.SilkS) + (gr_text "3.000 mm" (at 160.9575 108.5016 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (feature1 (pts (xy 156.0875 107.0016) (xy 160.273921 107.0016))) + (feature2 (pts (xy 156.0875 110.0016) (xy 160.273921 110.0016))) + (crossbar (pts (xy 159.6875 110.0016) (xy 159.6875 107.0016))) + (arrow1a (pts (xy 159.6875 107.0016) (xy 160.273921 108.128104))) + (arrow1b (pts (xy 159.6875 107.0016) (xy 159.101079 108.128104))) + (arrow2a (pts (xy 159.6875 110.0016) (xy 160.273921 108.875096))) + (arrow2b (pts (xy 159.6875 110.0016) (xy 159.101079 108.875096))) + ) + (gr_text "Stiffener only\nin this area" (at 159.5755 108.5876) (layer F.SilkS) (tstamp 7F95BC90) + (effects (font (size 0.57912 0.57912) (thickness 0.109728))) + ) + + (segment (start 148.082 100.457) (end 148.137 100.457) (width 0.25) (layer Bottom) (net 0)) + (segment (start 142.098 101.5) (end 142.748 101.5) (width 0.25) (layer Top) (net 1)) + (via (at 142.494 100.529) (size 0.8) (drill 0.4) (layers Top Bottom) (net 1)) + (segment (start 142.748 100.783) (end 142.494 100.529) (width 0.25) (layer Top) (net 1)) + (segment (start 142.748 101.5) (end 142.748 100.783) (width 0.25) (layer Top) (net 1)) + (segment (start 142.494 100.529) (end 142.76899 100.25401) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.201089 100.256533) (end 145.201089 101.934789) (width 0.25) (layer Bottom) (net 1)) + (segment (start 142.76899 100.25401) (end 145.198566 100.25401) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.198566 100.25401) (end 145.201089 100.256533) (width 0.25) (layer Bottom) (net 1)) + (segment (start 145.201089 101.934789) (end 146.1135 102.8472) (width 0.25) (layer Bottom) (net 1)) + (segment (start 147.022102 101.938598) (end 146.1135 102.8472) (width 0.25) (layer Bottom) (net 1)) + (segment (start 154.7255 104.319944) (end 152.344154 101.938598) (width 0.25) (layer Bottom) (net 1)) + (segment (start 152.344154 101.938598) (end 147.022102 101.938598) (width 0.25) (layer Bottom) (net 1)) + (segment (start 154.7255 108.8056) (end 154.7255 104.319944) (width 0.25) (layer Bottom) (net 1)) + (via (at 146.939 101.219) (size 0.8) (drill 0.4) (layers Top Bottom) (net 2) (status 1000000)) + (segment (start 152.129838 100.901187) (end 147.822498 100.901187) (width 0.25) (layer Bottom) (net 2)) + (segment (start 146.7332 101.4248) (end 146.939 101.219) (width 0.25) (layer Top) (net 2)) + (segment (start 146.3929 101.4248) (end 146.7332 101.4248) (width 0.25) (layer Top) (net 2)) + (segment (start 146.142049 101.675651) (end 146.3929 101.4248) (width 0.25) (layer Top) (net 2)) + (segment (start 143.573651 101.675651) (end 146.142049 101.675651) (width 0.25) (layer Top) (net 2)) + (segment (start 146.1161 101.219) (end 146.1135 101.2216) (width 0.25) (layer Bottom) (net 2)) + (segment (start 147.822498 100.901187) (end 147.504685 101.219) (width 0.25) (layer Bottom) (net 2)) + (segment (start 155.2255 103.996849) (end 152.129838 100.901187) (width 0.25) (layer Bottom) (net 2)) + (segment (start 143.398 101.5) (end 143.573651 101.675651) (width 0.25) (layer Top) (net 2)) + (segment (start 146.939 101.219) (end 146.1161 101.219) (width 0.25) (layer Bottom) (net 2)) + (segment (start 155.2255 108.8056) (end 155.2255 103.996849) (width 0.25) (layer Bottom) (net 2)) + (segment (start 147.504685 101.219) (end 146.939 101.219) (width 0.25) (layer Bottom) (net 2)) + (via (at 147.828 105.664) (size 0.8) (drill 0.4) (layers Top Bottom) (net 3)) + (segment (start 147.6782 105.5142) (end 147.828 105.664) (width 0.25) (layer Top) (net 3)) + (segment (start 146.3929 105.5142) (end 147.6782 105.5142) (width 0.25) (layer Top) (net 3)) + (segment (start 151.2255 106.512573) (end 151.2255 108.8056) (width 0.25) (layer Bottom) (net 3)) + (segment (start 150.712117 105.99919) (end 151.2255 106.512573) (width 0.25) (layer Bottom) (net 3)) + (segment (start 148.16319 105.99919) (end 150.712117 105.99919) (width 0.25) (layer Bottom) (net 3)) + (segment (start 147.828 105.664) (end 148.16319 105.99919) (width 0.25) (layer Bottom) (net 3)) + (segment (start 142.37541 105.26741) (end 145.075078 105.26741) (width 0.25) (layer Top) (net 4)) + (via (at 145.243931 105.098557) (size 0.8) (drill 0.4) (layers Top Bottom) (net 4)) + (segment (start 142.098 104.99) (end 142.37541 105.26741) (width 0.25) (layer Top) (net 4)) + (segment (start 142.098 104.24) (end 142.098 104.99) (width 0.25) (layer Top) (net 4)) + (segment (start 145.075078 105.26741) (end 145.243931 105.098557) (width 0.25) (layer Top) (net 4)) + (segment (start 145.487743 105.098557) (end 146.1135 104.4728) (width 0.25) (layer Bottom) (net 4)) + (segment (start 145.243931 105.098557) (end 145.487743 105.098557) (width 0.25) (layer Bottom) (net 4)) + (segment (start 150.674396 105.392376) (end 151.7255 106.44348) (width 0.25) (layer Bottom) (net 4)) + (segment (start 150.421816 105.392376) (end 150.674396 105.392376) (width 0.25) (layer Bottom) (net 4)) + (segment (start 146.1135 104.4728) (end 149.50224 104.4728) (width 0.25) (layer Bottom) (net 4)) + (segment (start 151.7255 106.44348) (end 151.7255 108.8056) (width 0.25) (layer Bottom) (net 4)) + (segment (start 149.50224 104.4728) (end 150.421816 105.392376) (width 0.25) (layer Bottom) (net 4)) + (segment (start 144.0815 104.4728) (end 144.4472 104.4728) (width 0.25) (layer Bottom) (net 5)) + (segment (start 144.4472 104.4728) (end 145.034 103.886) (width 0.25) (layer Bottom) (net 5)) + (via (at 145.034 103.886) (size 0.8) (drill 0.4) (layers Top Bottom) (net 5)) + (segment (start 145.034 103.886) (end 145.007 103.913) (width 0.25) (layer Top) (net 5)) + (segment (start 145.007 103.913) (end 145.007 104.24) (width 0.25) (layer Top) (net 5)) + (segment (start 143.398 104.24) (end 145.007 104.24) (width 0.25) (layer Top) (net 5)) + (segment (start 145.007 104.24) (end 145.381654 104.24) (width 0.25) (layer Top) (net 5)) + (segment (start 152.2255 108.8056) (end 152.2255 106.193504) (width 0.25) (layer Bottom) (net 5)) + (segment (start 145.381654 104.24) (end 145.856628 104.714974) (width 0.25) (layer Top) (net 5)) + (segment (start 145.856628 104.714974) (end 150.74697 104.714974) (width 0.25) (layer Top) (net 5)) + (via (at 150.74697 104.714974) (size 0.8) (drill 0.4) (layers Top Bottom) (net 5)) + (segment (start 152.2255 106.193504) (end 150.74697 104.714974) (width 0.25) (layer Bottom) (net 5)) + (segment (start 144.0815 102.8472) (end 144.803349 102.8472) (width 0.25) (layer Bottom) (net 6)) + (via (at 144.899309 102.94316) (size 0.8) (drill 0.4) (layers Top Bottom) (net 6)) + (segment (start 144.803349 102.8472) (end 144.899309 102.94316) (width 0.25) (layer Bottom) (net 6)) + (segment (start 144.899309 102.94316) (end 145.57107 102.271399) (width 0.25) (layer Top) (net 6)) + (via (at 148.336 103.52461) (size 0.8) (drill 0.4) (layers Top Bottom) (net 6)) + (segment (start 147.082789 102.271399) (end 148.336 103.52461) (width 0.25) (layer Top) (net 6)) + (segment (start 145.57107 102.271399) (end 147.082789 102.271399) (width 0.25) (layer Top) (net 6)) + (segment (start 152.7255 106.045058) (end 151.490164 104.809722) (width 0.25) (layer Bottom) (net 6)) + (segment (start 151.490164 104.35972) (end 150.655054 103.52461) (width 0.25) (layer Bottom) (net 6)) + (segment (start 152.7255 108.8056) (end 152.7255 106.045058) (width 0.25) (layer Bottom) (net 6)) + (segment (start 151.490164 104.809722) (end 151.490164 104.35972) (width 0.25) (layer Bottom) (net 6)) + (segment (start 150.655054 103.52461) (end 148.336 103.52461) (width 0.25) (layer Bottom) (net 6)) + (segment (start 146.2659 103.9902) (end 146.2659 102.9488) (width 0.254) (layer Top) (net 7) (tstamp 63E759C5)) + (segment (start 153.2255 105.415504) (end 152.231065 104.421069) (width 0.25) (layer Bottom) (net 7)) + (segment (start 148.842094 104.02107) (end 151.831066 104.02107) (width 0.25) (layer Top) (net 7)) + (via (at 152.231065 104.421069) (size 0.8) (drill 0.4) (layers Top Bottom) (net 7)) + (segment (start 148.661153 104.202011) (end 148.842094 104.02107) (width 0.25) (layer Top) (net 7)) + (segment (start 146.3929 103.9902) (end 146.604711 104.202011) (width 0.25) (layer Top) (net 7)) + (segment (start 146.604711 104.202011) (end 148.661153 104.202011) (width 0.25) (layer Top) (net 7)) + (segment (start 151.831066 104.02107) (end 152.231065 104.421069) (width 0.25) (layer Top) (net 7)) + (segment (start 153.2255 108.8056) (end 153.2255 105.415504) (width 0.25) (layer Bottom) (net 7)) + (segment (start 144.0815 101.2216) (end 144.283947 101.2216) (width 0.25) (layer Bottom) (net 9)) + (via (at 144.523679 100.981868) (size 0.8) (drill 0.4) (layers Top Bottom) (net 9)) + (segment (start 144.283947 101.2216) (end 144.523679 100.981868) (width 0.25) (layer Bottom) (net 9)) + (segment (start 144.523679 100.981868) (end 145.175547 100.33) (width 0.25) (layer Top) (net 9)) + (via (at 152.019 102.616) (size 0.8) (drill 0.4) (layers Top Bottom) (net 9)) + (segment (start 154.2255 104.8225) (end 152.019 102.616) (width 0.25) (layer Bottom) (net 9)) + (segment (start 154.2255 108.8056) (end 154.2255 104.8225) (width 0.25) (layer Bottom) (net 9)) + (segment (start 149.733 100.33) (end 147.574 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 152.019 102.616) (end 149.733 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 147.574 100.33) (end 147.955 100.33) (width 0.25) (layer Top) (net 9)) + (segment (start 145.175547 100.33) (end 147.574 100.33) (width 0.25) (layer Top) (net 9)) + +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/B1,27.kicad_mod b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/B1,27.kicad_mod new file mode 100644 index 0000000..448fc3c --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/B1,27.kicad_mod @@ -0,0 +1,16 @@ +(module B1,27 (layer F.Cu) (tedit 0) + (descr "TEST PAD") + (fp_text reference A1 (at 1.524 0 -180) (layer F.SilkS) + (effects (font (size 0.7239 0.7239) (thickness 0.130302)) (justify left bottom)) + ) + (fp_text value TPB1,27 (at -0.635 0.762 -180) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_line (start -0.635 0) (end 0.635 0) (layer Dwgs.User) (width 0.0024)) + (fp_line (start 0 -0.635) (end 0 0.635) (layer Dwgs.User) (width 0.0024)) + (fp_text user >TP_SIGNAL_NAME (at -0.635 1.905) (layer Dwgs.User) + (effects (font (size 0.95 0.95) (thickness 0.08)) (justify left bottom)) + ) + (pad TP smd roundrect (at 0 0) (size 1.27 1.27) (layers F.Cu F.Mask) (roundrect_rratio 0.5) + (solder_mask_margin 0.0635)) +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/FH19C9S05SH10-FFC.kicad_mod b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/FH19C9S05SH10-FFC.kicad_mod new file mode 100644 index 0000000..61ebf5f --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/FH19C9S05SH10-FFC.kicad_mod @@ -0,0 +1,33 @@ +(module FH19C9S05SH10-FFC (layer F.Cu) (tedit 0) + (descr "FH19C-9S-0.5SH(10)-1
\n") + (fp_text reference U$3 (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_text value FH19C-9S-0.5SH_10-FFC (at 0 0) (layer F.SilkS) hide + (effects (font (size 1.27 1.27) (thickness 0.15))) + ) + (fp_line (start -2.4892 0) (end -2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_line (start -2.3392 3.5) (end 2.3392 3.5) (layer Edge.Cuts) (width 0.05)) + (fp_line (start 2.4892 0) (end 2.4892 3.35) (layer Edge.Cuts) (width 0.05)) + (fp_arc (start -2.3392 3.35) (end -2.3392 3.5) (angle 90) (layer Edge.Cuts) (width 0.05)) + (fp_arc (start 2.3392 3.35) (end 2.3392 3.5) (angle -90) (layer Edge.Cuts) (width 0.05)) + (fp_poly (pts (xy -2.4902 0.9742) (xy 2.4882 0.9742) (xy 2.4892 3.4798) (xy -2.4892 3.4798)) (layer B.Mask) (width 0)) + (pad 1 smd rect (at 2 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 2 smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 3 smd rect (at 1 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 4 smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 5 smd rect (at 0 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 6 smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 7 smd rect (at -1 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 8 smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) + (pad 9 smd rect (at -2 2.25 90) (size 2.5 0.347) (layers B.Cu B.Mask) + (solder_mask_margin 0.0635)) +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/_0603MP.kicad_mod b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/_0603MP.kicad_mod new file mode 100644 index 0000000..b242ec4 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty/_0603MP.kicad_mod @@ -0,0 +1,19 @@ +(module _0603MP (layer F.Cu) (tedit 0) + (descr "0603 MicroPitch") + (fp_text reference R1 (at -0.0635 1.7145 -180) (layer F.SilkS) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_text value "1% 10K" (at -0.9525 0.9525 -180) (layer F.Fab) + (effects (font (size 0.77216 0.77216) (thickness 0.138988)) (justify left bottom)) + ) + (fp_line (start -0.432 0.306) (end 0.432 0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer F.Fab) (width 0.1016)) + (fp_line (start 0 -0.254) (end 0 0.254) (layer F.SilkS) (width 0.2032)) + (fp_poly (pts (xy 0.4318 0.4) (xy 0.8 0.4) (xy 0.8 -0.4) (xy 0.4318 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.8 0.4) (xy -0.4318 0.4) (xy -0.4318 -0.4) (xy -0.8 -0.4)) (layer F.Fab) (width 0)) + (fp_poly (pts (xy -0.1999 0.25) (xy 0.1999 0.25) (xy 0.1999 -0.25) (xy -0.1999 -0.25)) (layer F.Adhes) (width 0)) + (pad 1 smd rect (at -0.762 0) (size 0.8 0.8) (layers F.Cu F.Paste F.Mask) + (solder_mask_margin 0.0635)) + (pad 2 smd rect (at 0.762 0) (size 0.8 0.8) (layers F.Cu F.Paste F.Mask) + (solder_mask_margin 0.0635)) +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch new file mode 100644 index 0000000..7f0a6a3 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch @@ -0,0 +1,279 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr User 11980 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +Wire Wire Line + 3300 3100 2200 3100 +Text Label 2300 3100 0 70 ~ 0 +SCL +Wire Wire Line + 3300 3000 2200 3000 +Text Label 2300 3000 0 70 ~ 0 +SDA +Wire Wire Line + 4200 2500 2200 2500 +Wire Wire Line + 4200 2500 4200 2600 +Wire Wire Line + 4300 2500 4200 2500 +Text Label 2300 2500 0 70 ~ 0 +GND +Connection ~ 4200 2500 +Wire Wire Line + 2200 3200 3300 3200 +Text Label 2300 3200 0 70 ~ 0 +A0_TEMP_ENABLE +Wire Wire Line + 4800 3200 5900 3200 +Text Label 4900 3200 0 70 ~ 0 +A0_TEMP_ENABLE +Wire Wire Line + 3300 2600 2200 2600 +Text Label 2300 2600 0 70 ~ 0 +A4_SERCOM3.2_TC3.0 +Wire Wire Line + 3300 2700 2200 2700 +Text Label 2300 2700 0 70 ~ 0 +NC +Wire Wire Line + 3300 2800 2200 2800 +Text Label 2300 2800 0 70 ~ 0 +A2_TEMP_SENSE +Wire Wire Line + 5900 2800 4800 2800 +Connection ~ 5900 2800 +Text Label 4900 2800 0 70 ~ 0 +A2_TEMP_SENSE +Wire Wire Line + 4300 2400 4200 2400 +Wire Wire Line + 4200 2400 2200 2400 +Wire Wire Line + 4200 2300 4200 2400 +Text Label 2300 2400 0 70 ~ 0 +VCC +Connection ~ 4200 2400 +Wire Wire Line + 3300 2900 2200 2900 +Text Label 2300 2900 0 70 ~ 0 +A1_SERCOM3.3_TC3.1 +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:A4L-LOC #FRAME1 +U 1 1 73DA64CA +P 900 6200 +F 0 "#FRAME1" H 900 6200 50 0001 C CNN +F 1 "A4L-LOC" H 900 6200 50 0001 C CNN +F 2 "" H 900 6200 50 0001 C CNN +F 3 "" H 900 6200 50 0001 C CNN + 1 900 6200 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:FH19C-9S-0.5SH_10-FFC U$3 +U 1 1 54307519 +P 1700 2800 +F 0 "U$3" H 2050 3500 59 0000 L CNN +F 1 "FH19C-9S-0.5SH_10-FFC" H 2050 3400 59 0000 L CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:FH19C9S05SH10-FFC" H 1700 2800 50 0001 C CNN +F 3 "" H 1700 2800 50 0001 C CNN + 1 1700 2800 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:RESISTOR_0603MP RT1 +U 1 1 6C7771A6 +P 5900 2600 +F 0 "RT1" H 5900 2700 50 0000 C CNN +F 1 "NTC 10K" H 5900 2500 40 0000 C CNB +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" H 5900 2600 50 0001 C CNN +F 3 "" H 5900 2600 50 0001 C CNN + 1 5900 2600 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:RESISTOR_0603MP R1 +U 1 1 05CBC8DB +P 5900 3000 +F 0 "R1" H 5900 3100 50 0000 C CNN +F 1 "1% 10K" H 5900 2900 40 0000 C CNB +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" H 5900 3000 50 0001 C CNN +F 3 "" H 5900 3000 50 0001 C CNN + 1 5900 3000 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:GND #GND01 +U 1 1 DB8695AC +P 4200 2700 +F 0 "#GND01" H 4200 2700 50 0001 C CNN +F 1 "GND" H 4100 2600 59 0000 L BNN +F 2 "" H 4200 2700 50 0001 C CNN +F 3 "" H 4200 2700 50 0001 C CNN + 1 4200 2700 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:VCC #P+01 +U 1 1 BCDF72C5 +P 4200 2200 +F 0 "#P+01" H 4200 2200 50 0001 C CNN +F 1 "VCC" V 4100 2200 59 0000 L BNN +F 2 "" H 4200 2200 50 0001 C CNN +F 3 "" H 4200 2200 50 0001 C CNN + 1 4200 2200 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:VCC #P+02 +U 1 1 339DE9D3 +P 5900 2300 +F 0 "#P+02" H 5900 2300 50 0001 C CNN +F 1 "VCC" V 5800 2200 59 0000 L BNN +F 2 "" H 5900 2300 50 0001 C CNN +F 3 "" H 5900 2300 50 0001 C CNN + 1 5900 2300 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 GND1 +U 1 1 8E097FD0 +P 4400 2500 +F 0 "GND1" V 4450 2550 59 0000 L BNN +F 1 "TPB1,27" H 4400 2500 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 4400 2500 50 0001 C CNN +F 3 "" H 4400 2500 50 0001 C CNN + 1 4400 2500 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 A4 +U 1 1 E65641C5 +P 3400 2600 +F 0 "A4" V 3450 2650 59 0000 L BNN +F 1 "TPB1,27" H 3400 2600 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 2600 50 0001 C CNN +F 3 "" H 3400 2600 50 0001 C CNN + 1 3400 2600 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 VCC1 +U 1 1 D0DD1D8E +P 4400 2400 +F 0 "VCC1" V 4350 2450 59 0000 L BNN +F 1 "TPB1,27" H 4400 2400 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 4400 2400 50 0001 C CNN +F 3 "" H 4400 2400 50 0001 C CNN + 1 4400 2400 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 SCL1 +U 1 1 252148C1 +P 3400 3100 +F 0 "SCL1" V 3450 3150 59 0000 L BNN +F 1 "TPB1,27" H 3400 3100 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 3100 50 0001 C CNN +F 3 "" H 3400 3100 50 0001 C CNN + 1 3400 3100 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 SDA1 +U 1 1 943CED1C +P 3400 3000 +F 0 "SDA1" V 3450 3050 59 0000 L BNN +F 1 "TPB1,27" H 3400 3000 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 3000 50 0001 C CNN +F 3 "" H 3400 3000 50 0001 C CNN + 1 3400 3000 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 A1 +U 1 1 E1B0505C +P 3400 2900 +F 0 "A1" V 3450 2950 59 0000 L BNN +F 1 "TPB1,27" H 3400 2900 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 2900 50 0001 C CNN +F 3 "" H 3400 2900 50 0001 C CNN + 1 3400 2900 + 0 1 1 0 +$EndComp +$Comp +L OPT3001DNPT:OPT3001DNPT U1 +U 1 1 63E70E51 +P 7050 3100 +F 0 "U1" H 7050 3767 50 0000 C CNN +F 1 "OPT3001DNPT" H 7050 3676 50 0000 C CNN +F 2 "SON65P200X200X65-7N" H 7050 3100 50 0001 L BNN +F 3 "" H 7050 3100 50 0001 L BNN +F 4 "" H 7050 3100 50 0001 L BNN "EMAX" +F 5 "" H 7050 3100 50 0001 L BNN "BALL_COLUMNS" +F 6 "" H 7050 3100 50 0001 L BNN "BODY_DIAMETER" +F 7 "0.65" H 7050 3100 50 0001 L BNN "ENOM" +F 8 "" H 7050 3100 50 0001 L BNN "D1_MIN" +F 9 "1.9" H 7050 3100 50 0001 L BNN "E_MIN" +F 10 "0.25" H 7050 3100 50 0001 L BNN "L_MIN" +F 11 "2.0" H 7050 3100 50 0001 L BNN "E_NOM" +F 12 "0.65" H 7050 3100 50 0001 L BNN "A_MAX" +F 13 "0.65" H 7050 3100 50 0001 L BNN "E2_NOM" +F 14 "IPC 7351B" H 7050 3100 50 0001 L BNN "STANDARD" +F 15 "01/2018" H 7050 3100 50 0001 L BNN "PARTREV" +F 16 "0.25" H 7050 3100 50 0001 L BNN "B_NOM" +F 17 "" H 7050 3100 50 0001 L BNN "THERMAL_PAD" +F 18 "0.3" H 7050 3100 50 0001 L BNN "B_MAX" +F 19 "0.2" H 7050 3100 50 0001 L BNN "B_MIN" +F 20 "" H 7050 3100 50 0001 L BNN "IPC" +F 21 "" H 7050 3100 50 0001 L BNN "DNOM" +F 22 "6.0" H 7050 3100 50 0001 L BNN "PIN_COUNT" +F 23 "2.1" H 7050 3100 50 0001 L BNN "E_MAX" +F 24 "" H 7050 3100 50 0001 L BNN "JEDEC" +F 25 "" H 7050 3100 50 0001 L BNN "BALL_ROWS" +F 26 "" H 7050 3100 50 0001 L BNN "L1_MIN" +F 27 "" H 7050 3100 50 0001 L BNN "L1_NOM" +F 28 "" H 7050 3100 50 0001 L BNN "DMAX" +F 29 "" H 7050 3100 50 0001 L BNN "PIN_COLUMNS" +F 30 "" H 7050 3100 50 0001 L BNN "VACANCIES" +F 31 "" H 7050 3100 50 0001 L BNN "SNAPEDA_PACKAGE_ID" +F 32 "" H 7050 3100 50 0001 L BNN "DMIN" +F 33 "" H 7050 3100 50 0001 L BNN "L1_MAX" +F 34 "0.35" H 7050 3100 50 0001 L BNN "L_MAX" +F 35 "" H 7050 3100 50 0001 L BNN "D1_NOM" +F 36 "Texas Instruments" H 7050 3100 50 0001 L BNN "MANUFACTURER" +F 37 "1.35" H 7050 3100 50 0001 L BNN "D2_NOM" +F 38 "" H 7050 3100 50 0001 L BNN "PACKAGE_TYPE" +F 39 "" H 7050 3100 50 0001 L BNN "D1_MAX" +F 40 "0.3" H 7050 3100 50 0001 L BNN "L_NOM" +F 41 "2.1" H 7050 3100 50 0001 L BNN "D_MAX" +F 42 "2.0" H 7050 3100 50 0001 L BNN "D_NOM" +F 43 "" H 7050 3100 50 0001 L BNN "PINS" +F 44 "1.9" H 7050 3100 50 0001 L BNN "D_MIN" +F 45 "" H 7050 3100 50 0001 L BNN "EMIN" + 1 7050 3100 + 1 0 0 -1 +$EndComp +NoConn ~ 7650 3200 +NoConn ~ 7650 2900 +Text Label 7650 2700 0 50 ~ 0 +VCC +Text Label 7650 3400 0 50 ~ 0 +GND +Text Label 6450 2900 2 50 ~ 0 +GND +Text Label 6450 3100 2 50 ~ 0 +SCL +Text Label 6450 3200 2 50 ~ 0 +SDA +$EndSCHEMATC diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch-bak b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch-bak new file mode 100644 index 0000000..7f0a6a3 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.sch-bak @@ -0,0 +1,279 @@ +EESchema Schematic File Version 4 +EELAYER 30 0 +EELAYER END +$Descr User 11980 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +Wire Wire Line + 3300 3100 2200 3100 +Text Label 2300 3100 0 70 ~ 0 +SCL +Wire Wire Line + 3300 3000 2200 3000 +Text Label 2300 3000 0 70 ~ 0 +SDA +Wire Wire Line + 4200 2500 2200 2500 +Wire Wire Line + 4200 2500 4200 2600 +Wire Wire Line + 4300 2500 4200 2500 +Text Label 2300 2500 0 70 ~ 0 +GND +Connection ~ 4200 2500 +Wire Wire Line + 2200 3200 3300 3200 +Text Label 2300 3200 0 70 ~ 0 +A0_TEMP_ENABLE +Wire Wire Line + 4800 3200 5900 3200 +Text Label 4900 3200 0 70 ~ 0 +A0_TEMP_ENABLE +Wire Wire Line + 3300 2600 2200 2600 +Text Label 2300 2600 0 70 ~ 0 +A4_SERCOM3.2_TC3.0 +Wire Wire Line + 3300 2700 2200 2700 +Text Label 2300 2700 0 70 ~ 0 +NC +Wire Wire Line + 3300 2800 2200 2800 +Text Label 2300 2800 0 70 ~ 0 +A2_TEMP_SENSE +Wire Wire Line + 5900 2800 4800 2800 +Connection ~ 5900 2800 +Text Label 4900 2800 0 70 ~ 0 +A2_TEMP_SENSE +Wire Wire Line + 4300 2400 4200 2400 +Wire Wire Line + 4200 2400 2200 2400 +Wire Wire Line + 4200 2300 4200 2400 +Text Label 2300 2400 0 70 ~ 0 +VCC +Connection ~ 4200 2400 +Wire Wire Line + 3300 2900 2200 2900 +Text Label 2300 2900 0 70 ~ 0 +A1_SERCOM3.3_TC3.1 +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:A4L-LOC #FRAME1 +U 1 1 73DA64CA +P 900 6200 +F 0 "#FRAME1" H 900 6200 50 0001 C CNN +F 1 "A4L-LOC" H 900 6200 50 0001 C CNN +F 2 "" H 900 6200 50 0001 C CNN +F 3 "" H 900 6200 50 0001 C CNN + 1 900 6200 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:FH19C-9S-0.5SH_10-FFC U$3 +U 1 1 54307519 +P 1700 2800 +F 0 "U$3" H 2050 3500 59 0000 L CNN +F 1 "FH19C-9S-0.5SH_10-FFC" H 2050 3400 59 0000 L CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:FH19C9S05SH10-FFC" H 1700 2800 50 0001 C CNN +F 3 "" H 1700 2800 50 0001 C CNN + 1 1700 2800 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:RESISTOR_0603MP RT1 +U 1 1 6C7771A6 +P 5900 2600 +F 0 "RT1" H 5900 2700 50 0000 C CNN +F 1 "NTC 10K" H 5900 2500 40 0000 C CNB +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" H 5900 2600 50 0001 C CNN +F 3 "" H 5900 2600 50 0001 C CNN + 1 5900 2600 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:RESISTOR_0603MP R1 +U 1 1 05CBC8DB +P 5900 3000 +F 0 "R1" H 5900 3100 50 0000 C CNN +F 1 "1% 10K" H 5900 2900 40 0000 C CNB +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:_0603MP" H 5900 3000 50 0001 C CNN +F 3 "" H 5900 3000 50 0001 C CNN + 1 5900 3000 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:GND #GND01 +U 1 1 DB8695AC +P 4200 2700 +F 0 "#GND01" H 4200 2700 50 0001 C CNN +F 1 "GND" H 4100 2600 59 0000 L BNN +F 2 "" H 4200 2700 50 0001 C CNN +F 3 "" H 4200 2700 50 0001 C CNN + 1 4200 2700 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:VCC #P+01 +U 1 1 BCDF72C5 +P 4200 2200 +F 0 "#P+01" H 4200 2200 50 0001 C CNN +F 1 "VCC" V 4100 2200 59 0000 L BNN +F 2 "" H 4200 2200 50 0001 C CNN +F 3 "" H 4200 2200 50 0001 C CNN + 1 4200 2200 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:VCC #P+02 +U 1 1 339DE9D3 +P 5900 2300 +F 0 "#P+02" H 5900 2300 50 0001 C CNN +F 1 "VCC" V 5800 2200 59 0000 L BNN +F 2 "" H 5900 2300 50 0001 C CNN +F 3 "" H 5900 2300 50 0001 C CNN + 1 5900 2300 + 1 0 0 -1 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 GND1 +U 1 1 8E097FD0 +P 4400 2500 +F 0 "GND1" V 4450 2550 59 0000 L BNN +F 1 "TPB1,27" H 4400 2500 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 4400 2500 50 0001 C CNN +F 3 "" H 4400 2500 50 0001 C CNN + 1 4400 2500 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 A4 +U 1 1 E65641C5 +P 3400 2600 +F 0 "A4" V 3450 2650 59 0000 L BNN +F 1 "TPB1,27" H 3400 2600 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 2600 50 0001 C CNN +F 3 "" H 3400 2600 50 0001 C CNN + 1 3400 2600 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 VCC1 +U 1 1 D0DD1D8E +P 4400 2400 +F 0 "VCC1" V 4350 2450 59 0000 L BNN +F 1 "TPB1,27" H 4400 2400 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 4400 2400 50 0001 C CNN +F 3 "" H 4400 2400 50 0001 C CNN + 1 4400 2400 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 SCL1 +U 1 1 252148C1 +P 3400 3100 +F 0 "SCL1" V 3450 3150 59 0000 L BNN +F 1 "TPB1,27" H 3400 3100 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 3100 50 0001 C CNN +F 3 "" H 3400 3100 50 0001 C CNN + 1 3400 3100 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 SDA1 +U 1 1 943CED1C +P 3400 3000 +F 0 "SDA1" V 3450 3050 59 0000 L BNN +F 1 "TPB1,27" H 3400 3000 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 3000 50 0001 C CNN +F 3 "" H 3400 3000 50 0001 C CNN + 1 3400 3000 + 0 1 1 0 +$EndComp +$Comp +L Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import:TPB1,27 A1 +U 1 1 E1B0505C +P 3400 2900 +F 0 "A1" V 3450 2950 59 0000 L BNN +F 1 "TPB1,27" H 3400 2900 50 0001 C CNN +F 2 "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001:B1,27" H 3400 2900 50 0001 C CNN +F 3 "" H 3400 2900 50 0001 C CNN + 1 3400 2900 + 0 1 1 0 +$EndComp +$Comp +L OPT3001DNPT:OPT3001DNPT U1 +U 1 1 63E70E51 +P 7050 3100 +F 0 "U1" H 7050 3767 50 0000 C CNN +F 1 "OPT3001DNPT" H 7050 3676 50 0000 C CNN +F 2 "SON65P200X200X65-7N" H 7050 3100 50 0001 L BNN +F 3 "" H 7050 3100 50 0001 L BNN +F 4 "" H 7050 3100 50 0001 L BNN "EMAX" +F 5 "" H 7050 3100 50 0001 L BNN "BALL_COLUMNS" +F 6 "" H 7050 3100 50 0001 L BNN "BODY_DIAMETER" +F 7 "0.65" H 7050 3100 50 0001 L BNN "ENOM" +F 8 "" H 7050 3100 50 0001 L BNN "D1_MIN" +F 9 "1.9" H 7050 3100 50 0001 L BNN "E_MIN" +F 10 "0.25" H 7050 3100 50 0001 L BNN "L_MIN" +F 11 "2.0" H 7050 3100 50 0001 L BNN "E_NOM" +F 12 "0.65" H 7050 3100 50 0001 L BNN "A_MAX" +F 13 "0.65" H 7050 3100 50 0001 L BNN "E2_NOM" +F 14 "IPC 7351B" H 7050 3100 50 0001 L BNN "STANDARD" +F 15 "01/2018" H 7050 3100 50 0001 L BNN "PARTREV" +F 16 "0.25" H 7050 3100 50 0001 L BNN "B_NOM" +F 17 "" H 7050 3100 50 0001 L BNN "THERMAL_PAD" +F 18 "0.3" H 7050 3100 50 0001 L BNN "B_MAX" +F 19 "0.2" H 7050 3100 50 0001 L BNN "B_MIN" +F 20 "" H 7050 3100 50 0001 L BNN "IPC" +F 21 "" H 7050 3100 50 0001 L BNN "DNOM" +F 22 "6.0" H 7050 3100 50 0001 L BNN "PIN_COUNT" +F 23 "2.1" H 7050 3100 50 0001 L BNN "E_MAX" +F 24 "" H 7050 3100 50 0001 L BNN "JEDEC" +F 25 "" H 7050 3100 50 0001 L BNN "BALL_ROWS" +F 26 "" H 7050 3100 50 0001 L BNN "L1_MIN" +F 27 "" H 7050 3100 50 0001 L BNN "L1_NOM" +F 28 "" H 7050 3100 50 0001 L BNN "DMAX" +F 29 "" H 7050 3100 50 0001 L BNN "PIN_COLUMNS" +F 30 "" H 7050 3100 50 0001 L BNN "VACANCIES" +F 31 "" H 7050 3100 50 0001 L BNN "SNAPEDA_PACKAGE_ID" +F 32 "" H 7050 3100 50 0001 L BNN "DMIN" +F 33 "" H 7050 3100 50 0001 L BNN "L1_MAX" +F 34 "0.35" H 7050 3100 50 0001 L BNN "L_MAX" +F 35 "" H 7050 3100 50 0001 L BNN "D1_NOM" +F 36 "Texas Instruments" H 7050 3100 50 0001 L BNN "MANUFACTURER" +F 37 "1.35" H 7050 3100 50 0001 L BNN "D2_NOM" +F 38 "" H 7050 3100 50 0001 L BNN "PACKAGE_TYPE" +F 39 "" H 7050 3100 50 0001 L BNN "D1_MAX" +F 40 "0.3" H 7050 3100 50 0001 L BNN "L_NOM" +F 41 "2.1" H 7050 3100 50 0001 L BNN "D_MAX" +F 42 "2.0" H 7050 3100 50 0001 L BNN "D_NOM" +F 43 "" H 7050 3100 50 0001 L BNN "PINS" +F 44 "1.9" H 7050 3100 50 0001 L BNN "D_MIN" +F 45 "" H 7050 3100 50 0001 L BNN "EMIN" + 1 7050 3100 + 1 0 0 -1 +$EndComp +NoConn ~ 7650 3200 +NoConn ~ 7650 2900 +Text Label 7650 2700 0 50 ~ 0 +VCC +Text Label 7650 3400 0 50 ~ 0 +GND +Text Label 6450 2900 2 50 ~ 0 +GND +Text Label 6450 3100 2 50 ~ 0 +SCL +Text Label 6450 3200 2 50 ~ 0 +SDA +$EndSCHEMATC diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.dcm b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.dcm new file mode 100644 index 0000000..5f3ed79 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.dcm @@ -0,0 +1,3 @@ +EESchema-DOCLIB Version 2.0 +# +#End Doc Library diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.lib b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.lib new file mode 100644 index 0000000..b3b5489 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.lib @@ -0,0 +1,990 @@ +EESchema-LIBRARY Version 2.4 +#encoding utf-8 +# +# A4L-LOC +# +DEF A4L-LOC #FRAME 0 40 Y Y 1 L N +F0 "#FRAME" 0 0 50 H I C CNN +F1 "A4L-LOC" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 8550 600 85 0 1 0 >DRAWING_NAME Normal 0 L B +T 0 8550 400 76 0 1 0 >LAST_DATE_TIME Normal 0 L B +T 0 8995 200 85 0 1 0 >SHEET Normal 0 L B +T 0 8550 800 85 0 1 0 "by joey castillo" Normal 0 L B +T 0 9300 200 85 0 1 0 "cc-by-sa 4.0" Normal 0 L B +T 0 7300 200 180 0 1 0 oddly_specific_objects Normal 0 L B +T 0 8540 195 85 0 1 0 Sheet: Normal 0 L B +P 2 1 0 0 7250 150 7250 950 N +P 2 1 0 0 7250 950 8475 950 N +P 2 1 0 0 8475 350 8475 150 N +P 2 1 0 0 8475 350 8475 550 N +P 2 1 0 0 8475 550 8475 750 N +P 2 1 0 0 8475 550 10100 550 N +P 2 1 0 0 8475 750 8475 950 N +P 2 1 0 0 8475 750 10100 750 N +P 2 1 0 0 8475 950 10100 950 N +P 2 1 0 0 9250 150 9250 350 N +P 2 1 0 0 9250 350 8475 350 N +P 2 1 0 0 9250 350 10100 350 N +P 2 1 0 0 10100 150 10100 350 N +P 2 1 0 0 10100 350 10100 550 N +P 2 1 0 0 10100 550 10100 750 N +P 2 1 0 0 10100 750 10100 950 N +ENDDRAW +ENDDEF +# +# FH19C-9S-0.5SH_10-FFC +# +DEF FH19C-9S-0.5SH_10-FFC ~ 0 40 Y Y 1 L N +F0 "" 350 700 59 H V L CNN +F1 "FH19C-9S-0.5SH_10-FFC" 350 600 59 H V L CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -200 500 -200 -500 N +P 2 1 0 0 -200 500 300 500 N +P 2 1 0 0 300 -500 -200 -500 N +P 2 1 0 0 300 -500 300 500 N +X 1 1 500 400 200 L 50 50 1 0 B +X 2 2 500 300 200 L 50 50 1 0 B +X 3 3 500 200 200 L 50 50 1 0 B +X 4 4 500 100 200 L 50 50 1 0 B +X 5 5 500 0 200 L 50 50 1 0 B +X 6 6 500 -100 200 L 50 50 1 0 B +X 7 7 500 -200 200 L 50 50 1 0 B +X 8 8 500 -300 200 L 50 50 1 0 B +X 9 9 500 -400 200 L 50 50 1 0 B +ENDDRAW +ENDDEF +# +# GND +# +DEF GND #GND 0 40 Y Y 1 L P +F0 "#GND" 0 0 50 H I C CNN +F1 "GND" -100 -100 59 H V L BNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -75 0 75 0 N +X GND 1 0 100 100 D 0 0 1 0 W +ENDDRAW +ENDDEF +# +# RESISTOR0603MINI +# +DEF RESISTOR0603MINI R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR0603MINI" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR0805_10MGAP +# +DEF RESISTOR0805_10MGAP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR0805_10MGAP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR0805_NOOUTLINE +# +DEF RESISTOR0805_NOOUTLINE R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR0805_NOOUTLINE" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR0805_NOTHERMALS +# +DEF RESISTOR0805_NOTHERMALS R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR0805_NOTHERMALS" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR2012 +# +DEF RESISTOR2012 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR2012" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR2512 +# +DEF RESISTOR2512 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR2512" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0402 +# +DEF RESISTOR_0402 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0402" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0402MP +# +DEF RESISTOR_0402MP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0402MP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0603 +# +DEF RESISTOR_0603 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0603" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0603MP +# +DEF RESISTOR_0603MP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0603MP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0603_NOOUT +# +DEF RESISTOR_0603_NOOUT R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0603_NOOUT" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0805 +# +DEF RESISTOR_0805 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0805" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_0805MP +# +DEF RESISTOR_0805MP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_0805MP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_1206 +# +DEF RESISTOR_1206 R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_1206" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# RESISTOR_1206MP +# +DEF RESISTOR_1206MP R 0 40 Y Y 1 L N +F0 "R" 0 100 50 H V C CNN +F1 "RESISTOR_1206MP" 0 0 40 H V C CNB +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 -100 -50 -100 50 N +P 2 1 0 0 -100 50 100 50 N +P 2 1 0 0 100 -50 -100 -50 N +P 2 1 0 0 100 50 100 -50 N +X 1 1 -200 0 100 R 0 0 1 0 P +X 2 2 200 0 100 L 0 0 1 0 P +ENDDRAW +ENDDEF +# +# TPB1,27 +# +DEF TPB1,27 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPB1,27" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPB2,54 +# +DEF TPB2,54 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPB2,54" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-13 +# +DEF TPPAD1-13 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-13" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-13Y +# +DEF TPPAD1-13Y TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-13Y" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-17 +# +DEF TPPAD1-17 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-17" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-17Y +# +DEF TPPAD1-17Y TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-17Y" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-20 +# +DEF TPPAD1-20 TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-20" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPPAD1-20Y +# +DEF TPPAD1-20Y TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPPAD1-20Y" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP06R +# +DEF TPTP06R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP06R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP06SQ +# +DEF TPTP06SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP06SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP07R +# +DEF TPTP07R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP07R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP07SQ +# +DEF TPTP07SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP07SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP08R +# +DEF TPTP08R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP08R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP08SQ +# +DEF TPTP08SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP08SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP09R +# +DEF TPTP09R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP09R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP09SQ +# +DEF TPTP09SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP09SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP10R +# +DEF TPTP10R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP10R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP10SQ +# +DEF TPTP10SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP10SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP11R +# +DEF TPTP11R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP11R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP11SQ +# +DEF TPTP11SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP11SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP12R +# +DEF TPTP12R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP12R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP12SQ +# +DEF TPTP12SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP12SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP13R +# +DEF TPTP13R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP13R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP13SQ +# +DEF TPTP13SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP13SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP14R +# +DEF TPTP14R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP14R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP14SQ +# +DEF TPTP14SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP14SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP15R +# +DEF TPTP15R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP15R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP15SQ +# +DEF TPTP15SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP15SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP16R +# +DEF TPTP16R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP16R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP16SQ +# +DEF TPTP16SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP16SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP17R +# +DEF TPTP17R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP17R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP17SQ +# +DEF TPTP17SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP17SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP18R +# +DEF TPTP18R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP18R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP18SQ +# +DEF TPTP18SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP18SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP19R +# +DEF TPTP19R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP19R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP19SQ +# +DEF TPTP19SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP19SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP20R +# +DEF TPTP20R TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP20R" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# TPTP20SQ +# +DEF TPTP20SQ TP 0 40 Y Y 1 L N +F0 "TP" -50 50 59 H V L BNN +F1 "TPTP20SQ" 0 0 50 H I C CNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +T 0 50 -50 59 0 1 0 >TP_SIGNAL_NAME Normal 0 L B +P 2 1 0 0 -30 -30 0 0 N +P 2 1 0 0 0 -60 -30 -30 N +P 2 1 0 0 0 0 30 -30 N +P 2 1 0 0 30 -30 0 -60 N +X TP TP 0 -100 100 U 0 0 1 0 I +ENDDRAW +ENDDEF +# +# VCC +# +DEF VCC #P+ 0 40 Y Y 1 L P +F0 "#P+" 0 0 50 H I C CNN +F1 "VCC" -100 -100 59 V V L BNN +F2 "" 0 0 50 H I C CNN +F3 "" 0 0 50 H I C CNN +DRAW +P 2 1 0 0 0 0 -50 -75 N +P 2 1 0 0 50 -75 0 0 N +X VCC 1 0 -100 100 U 0 0 1 0 W +ENDDRAW +ENDDEF +# +#End Library diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/empty.kicad_wks b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/empty.kicad_wks new file mode 100644 index 0000000..f50032b --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/empty.kicad_wks @@ -0,0 +1,5 @@ +(page_layout +(setup (textsize 1.5 1.5)(linewidth 0.15)(textlinewidth 0.15) +(left_margin 10)(right_margin 10)(top_margin 10)(bottom_margin 10)) +(line (name segm1:Line) (start 0 0) (end 0 0)) +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-info-cache b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-info-cache new file mode 100644 index 0000000..573541a --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-info-cache @@ -0,0 +1 @@ +0 diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-lib-table b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-lib-table new file mode 100644 index 0000000..9ebe18e --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/fp-lib-table @@ -0,0 +1,4 @@ +(fp_lib_table + (lib (name "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001")(type KiCad)(uri "$(KIPRJMOD)/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001.pretty")(options "")(descr "")) + (lib (name OPT3001DNPT)(type KiCad)(uri ${KIPRJMOD}/OPT3001DNPT)(options "")(descr "")) +) diff --git a/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/sym-lib-table b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/sym-lib-table new file mode 100644 index 0000000..8b9d268 --- /dev/null +++ b/PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/sym-lib-table @@ -0,0 +1,4 @@ +(sym_lib_table + (lib (name Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import)(type Legacy)(uri ${KIPRJMOD}/Q3Q-SWAB-A1-00_Temperature_+_Test_Points_+_OPT3001-eagle-import.lib)(options "")(descr "")) + (lib (name OPT3001DNPT)(type Legacy)(uri ${KIPRJMOD}/OPT3001DNPT/OPT3001DNPT.lib)(options "")(descr "")) +) diff --git a/make.mk b/make.mk index 737e1f5..35af342 100644 --- a/make.mk +++ b/make.mk @@ -150,6 +150,7 @@ SRCS += \ $(TOP)/watch-library/hardware/hpl/systick/hpl_systick.c \ $(TOP)/watch-library/shared/driver/thermistor_driver.c \ $(TOP)/watch-library/shared/driver/lis2dw.c \ + $(TOP)/watch-library/shared/driver/opt3001.c \ $(TOP)/watch-library/shared/driver/spiflash.c \ $(TOP)/watch-library/shared/watch/watch_private_buzzer.c \ $(TOP)/watch-library/shared/watch/watch_private_display.c \ @@ -195,6 +196,7 @@ SRCS += \ $(TOP)/watch-library/simulator/watch/watch_private.c \ $(TOP)/watch-library/simulator/watch/watch.c \ $(TOP)/watch-library/shared/driver/thermistor_driver.c \ + $(TOP)/watch-library/shared/driver/opt3001.c \ $(TOP)/watch-library/shared/watch/watch_private_buzzer.c \ $(TOP)/watch-library/shared/watch/watch_private_display.c \ $(TOP)/watch-library/shared/watch/watch_utility.c \ diff --git a/movement/make/Makefile b/movement/make/Makefile index d403045..4614cd2 100644 --- a/movement/make/Makefile +++ b/movement/make/Makefile @@ -101,6 +101,7 @@ SRCS += \ ../watch_faces/complication/activity_face.c \ ../watch_faces/demo/chirpy_demo_face.c \ ../watch_faces/complication/ships_bell_face.c \ + ../watch_faces/sensor/lightmeter_face.c \ ../watch_faces/complication/discgolf_face.c \ ../watch_faces/complication/habit_face.c \ ../watch_faces/complication/breathing_face.c \ diff --git a/movement/movement_config.h b/movement/movement_config.h index 9e446d4..3f6a0dc 100644 --- a/movement/movement_config.h +++ b/movement/movement_config.h @@ -29,6 +29,8 @@ const watch_face_t watch_faces[] = { simple_clock_face, + lightmeter_face, + thermistor_readout_face, world_clock_face, sunrise_sunset_face, moon_phase_face, diff --git a/movement/movement_faces.h b/movement/movement_faces.h index b858475..afa8f14 100644 --- a/movement/movement_faces.h +++ b/movement/movement_faces.h @@ -76,6 +76,7 @@ #include "activity_face.h" #include "chirpy_demo_face.h" #include "ships_bell_face.h" +#include "lightmeter_face.h" #include "discgolf_face.h" #include "habit_face.h" #include "breathing_face.h" diff --git a/movement/watch_faces/sensor/lightmeter_face.c b/movement/watch_faces/sensor/lightmeter_face.c new file mode 100644 index 0000000..861e28d --- /dev/null +++ b/movement/watch_faces/sensor/lightmeter_face.c @@ -0,0 +1,206 @@ +/* + * MIT License + * + * Copyright (c) 2022 CC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* Aperture-priority Light Meter Face + * + * Tested with the "Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001" flexboard. + * This flexboard could use a revision: + * + * - The thermistor components should be moved west a mm or flipped to the backside + * to avoid stressing the flexboard against the processor so much. + * - The 'no connect' pad falls off easily. + * + * Controls: + * + * - Trigger a measurement by long-pressing Alarm. + * Sensor integration is happening when the Signal indicator is on. + * + * - ISO setting can be cycled by long-pressing Light. + * During integration the current ISO setting will be displayed. + * + * - EV measurement in the top right: "LAP" indicates "half stop". + * So "LAP -1" means EV = -1.5. Likewise "LAP 13" means EV = +13.5 + * + * - Aperture in the bottom right: the last 3 main digits are the f-stop. + * Adjust this number in half-stop increments using Alarm = +1/2 and Light = -1/2. + * + * - Best shutter speed in the bottom left: the first 3 digits are the shutter speed. + * Some special chars are needed here: "-" = seconds, "h" = extra half second, "K" = thousands. + * "HI" or "LO" if there's no shutter in the dictionary within 0.5 stops of correct exposure. + * + * - Mode long-press changes the main digits to show raw sensor lux measurements. + * + */ + +#include +#include +#include +#include "lightmeter_face.h" +#include "watch_utility.h" +#include "watch_slcd.h" + +uint16_t lightmeter_mod(uint16_t m, uint16_t n) { return (m%n + n)%n; } + +void lightmeter_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr) { + (void) settings; + (void) watch_face_index; + if (*context_ptr == NULL) { + *context_ptr = malloc(sizeof(lightmeter_state_t)); + lightmeter_state_t *state = (lightmeter_state_t*) *context_ptr; + state->waiting_for_conversion = 0; + state->lux = 0.0; + state->mode = 0; + state->iso = LIGHTMETER_ISO_100; + state->ap = LIGHTMETER_AP_4P0; + } +} + +void lightmeter_face_activate(movement_settings_t *settings, void *context) { + (void) settings; + lightmeter_state_t *state = (lightmeter_state_t*) context; + state->waiting_for_conversion = 0; + lightmeter_show_ev(state); // Print most current reading + watch_enable_i2c(); + return; +} + +void lightmeter_show_ev(lightmeter_state_t *state) { + + float ev = max(min( + log2(state->lux) + + lightmeter_isos[state->iso].ev + + LIGHTMETER_CALIBRATION, + 99), -9); + int evt = round(2*ev); // Truncated EV + + // Print EV + char strbuff[7]; + watch_clear_all_indicators(); + watch_display_string("EV ", 0); + + sprintf(strbuff, "%2i", (uint16_t) abs(evt/2)); // Print whole part of EV + watch_display_string(strbuff, 2); + if(evt%2) watch_set_indicator(WATCH_INDICATOR_LAP); // Indicate half stop + if(ev<0) watch_set_pixel(1,9); // Indicate negative EV + + // Handle lux mode + if(state->mode == 1) { + sprintf(strbuff, "%6.0f", min(state->lux, 999999.0)); + watch_display_string(strbuff, 4); + return; + } + + // Find and print best shutter speed + uint16_t bestsh = 0; + float besterr = 1.0/0.0; + float errbuf = 1.0/0.0; + float comp_ev = ev + lightmeter_aps[state->ap].ev; + for(uint16_t ind = 2; ind < LIGHTMETER_N_SHS; ind++) { + errbuf = comp_ev + lightmeter_shs[ind].ev; + if( fabs(errbuf) < fabs(besterr)) { + besterr = errbuf; + bestsh = ind; + } + } + if(besterr >= 0.5) watch_display_string(lightmeter_shs[LIGHTMETER_SH_HIGH].str, 4); + else if(besterr <= -0.5) watch_display_string(lightmeter_shs[LIGHTMETER_SH_LOW].str, 4); + else watch_display_string(lightmeter_shs[bestsh].str, 4); + + // Print aperture + watch_display_string(lightmeter_aps[state->ap].str, 7); + return; +} + +bool lightmeter_face_loop(movement_event_t event, movement_settings_t *settings, void *context) { + (void) settings; + lightmeter_state_t *state = (lightmeter_state_t*) context; + + opt3001_Config_t c; + switch (event.event_type) { + case EVENT_TICK: + if(state->waiting_for_conversion) { // Check if measurement is ready... + c = opt3001_readConfig(lightmeter_addr); + if(c.ConversionReady) { + state->waiting_for_conversion = 0; + opt3001_t result = opt3001_readResult(lightmeter_addr); + state->lux = result.lux; + lightmeter_show_ev(state); + } + } + break; + + case EVENT_ALARM_BUTTON_UP: // Increment aperture + state->ap = lightmeter_mod(state->ap+1, LIGHTMETER_N_APS); + + lightmeter_show_ev(state); + break; + + case EVENT_LIGHT_BUTTON_UP: // Decrement aperture + if(state->ap == 0) state->ap = LIGHTMETER_N_APS-1; + else state->ap = lightmeter_mod(state->ap-1, LIGHTMETER_N_APS); + + lightmeter_show_ev(state); + break; + + case EVENT_LIGHT_LONG_PRESS: // Cycle ISO + state->iso = lightmeter_mod(state->iso+1, LIGHTMETER_N_ISOS); + + watch_clear_all_indicators(); + watch_display_string("EV ", 0); + watch_display_string(lightmeter_isos[state->iso].str, 4); + break; + + case EVENT_ALARM_LONG_PRESS: // Take measurement + opt3001_writeConfig(lightmeter_addr, lightmeter_takeNewReading); + state->waiting_for_conversion = 1; + + watch_clear_all_indicators(); + watch_display_string("EV ", 0); + watch_display_string(lightmeter_isos[state->iso].str, 4); + watch_set_indicator(WATCH_INDICATOR_SIGNAL); + break; + + case EVENT_MODE_LONG_PRESS: // Toggle mode + state->mode = !state->mode; + lightmeter_show_ev(state); + break; + + case EVENT_TIMEOUT: + movement_move_to_face(0); + break; + + default: + movement_default_loop_handler(event, settings); + break; + } + return true; +} + +void lightmeter_face_resign(movement_settings_t *settings, void *context) { + (void) settings; + (void) context; + opt3001_writeConfig(lightmeter_addr, lightmeter_off); + watch_disable_i2c(); + return; +} diff --git a/movement/watch_faces/sensor/lightmeter_face.h b/movement/watch_faces/sensor/lightmeter_face.h new file mode 100644 index 0000000..2f8813f --- /dev/null +++ b/movement/watch_faces/sensor/lightmeter_face.h @@ -0,0 +1,160 @@ +/* + * MIT License + * + * Copyright (c) 2023 CC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef LIGHTMETER_FACE_H_ +#define LIGHTMETER_FACE_H_ + +#include "movement.h" +#include "opt3001.h" + +#define LIGHTMETER_CALIBRATION 2.58 +typedef struct { + char * str; + float ev; +} lightmeter_ev_t; + +static const lightmeter_ev_t lightmeter_isos[] = { + {" i 25", -2}, + {" i 50", -1}, + {" i 100", 0}, + {" i 160", 0.68}, + {" i 200", 1}, + {" i 400", 2}, + {" i 800", 3}, + {" i1600", 4}}; +typedef enum { + LIGHTMETER_ISO_25, LIGHTMETER_ISO_50, LIGHTMETER_ISO_100, LIGHTMETER_ISO_160, LIGHTMETER_ISO_200, LIGHTMETER_ISO_400, LIGHTMETER_ISO_800, LIGHTMETER_ISO_1600, + LIGHTMETER_N_ISOS +} lightmeter_iso_t; + +static const lightmeter_ev_t lightmeter_aps[] = { + {"1.4", 0}, + {"1.8", -0.5}, + {"2.0", -1}, + {"2.4", -1.5}, + {"2.8", -2}, + {"3.3", -2.5}, + {"4.0", -3}, + {"4.8", -3.5}, + {"5.6", -4}, + {"6.7", -4.5}, + {"8.0", -5}, + {"9.5", -5.5}, + {"11.", -6}, + {"13.", -6.5}, + {"16.", -7}, + {"19.", -7.5}, + {"22.", -8}}; +typedef enum { + LIGHTMETER_AP_1P4, LIGHTMETER_AP_1P8, LIGHTMETER_AP_2P0, LIGHTMETER_AP_2P4, LIGHTMETER_AP_2P8, LIGHTMETER_AP_3P3, LIGHTMETER_AP_4P0, LIGHTMETER_AP_4P8, LIGHTMETER_AP_5P6, LIGHTMETER_AP_6P7, LIGHTMETER_AP_8P0, LIGHTMETER_AP_9P5, + LIGHTMETER_AP_11, LIGHTMETER_AP_13, LIGHTMETER_AP_16, LIGHTMETER_AP_19, LIGHTMETER_AP_22, + LIGHTMETER_N_APS +} lightmeter_ap_t; + +static const lightmeter_ev_t lightmeter_shs[] = { + {"LO-", 99}, + {"HI ", -99}, + {"30-", 5.0}, + {"20-", 4.5}, + {"15-", 4.0}, + {"11-", 3.5}, + {"8- ", 3.0}, + {"6- ", 2.5}, + {"4- ", 2.0}, + {"3- ", 1.5}, + {"2- ", 1.0}, + {"1h-", 0.5}, + {"1 ", 0.0}, + {"1h ", -0.5}, + {"2 ", -1.0}, + {"3 ", -1.5}, + {"4 ", -2.0}, + {"6 ", -2.5}, + {"8 ", -3.0}, + {"12 ", -3.5}, + {"15 ", -4.0}, + {"20 ", -4.5}, + {"30 ", -5.0}, + {"45 ", -5.5}, + {"60 ", -6.0}, + {"90 ", -6.5}, + {"125", -7.0}, + {"180", -7.5}, + {"250", -8.0}, + {"350", -8.5}, + {"500", -9.0}, + {"750", -9.5}, + {"1K ", -10.0}, + {"1K5", -10.5}, + {"2K ", -11.0}, + {"3K ", -11.5}, + {"4K ", -12.0}, + {"6K ", -12.5}, + {"8K ", -13.0}}; +typedef enum { + LIGHTMETER_SH_LOW, LIGHTMETER_SH_HIGH, + LIGHTMETER_SH_30S, LIGHTMETER_SH_20S, LIGHTMETER_SH_15S, LIGHTMETER_SH_11S, LIGHTMETER_SH_8S, LIGHTMETER_SH_6S, LIGHTMETER_SH_3S, LIGHTMETER_SH_4S, LIGHTMETER_SH_2S, LIGHTMETER_SH_1HS, + LIGHTMETER_SH_1, LIGHTMETER_SH_1H, LIGHTMETER_SH_2, LIGHTMETER_SH_3, LIGHTMETER_SH_4, LIGHTMETER_SH_6, LIGHTMETER_SH_8, LIGHTMETER_SH_12, LIGHTMETER_SH_15, LIGHTMETER_SH_20, LIGHTMETER_SH_30, LIGHTMETER_SH_45, LIGHTMETER_SH_60, LIGHTMETER_SH_90, LIGHTMETER_SH_125, LIGHTMETER_SH_180, LIGHTMETER_SH_250, LIGHTMETER_SH_350, LIGHTMETER_SH_500, LIGHTMETER_SH_750, + LIGHTMETER_SH_1K, LIGHTMETER_SH_1K5, LIGHTMETER_SH_2K, LIGHTMETER_SH_3K, LIGHTMETER_SH_4K, LIGHTMETER_SH_6K, LIGHTMETER_SH_8K, + LIGHTMETER_N_SHS +} lightmeter_sh_t; + +typedef struct { + lightmeter_iso_t iso; + lightmeter_ap_t ap; + bool waiting_for_conversion; + float lux; + int mode; +} lightmeter_state_t; + +static const opt3001_Config_t lightmeter_takeNewReading = { + .RangeNumber = 0B1100, + .ConversionTime = 0B1, + .Latch = 0B1, + .ModeOfConversionOperation = 0B01 +}; + +static const opt3001_Config_t lightmeter_off = { + .ModeOfConversionOperation = 0B00 +}; + +uint16_t lightmeter_mod(uint16_t m, uint16_t n); + +void lightmeter_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr); +void lightmeter_face_activate(movement_settings_t *settings, void *context); +void lightmeter_show_ev(lightmeter_state_t *state); +bool lightmeter_face_loop(movement_event_t event, movement_settings_t *settings, void *context); +void lightmeter_face_resign(movement_settings_t *settings, void *context); + +static const uint8_t lightmeter_addr = 0x44; + +#define lightmeter_face ((const watch_face_t){ \ + lightmeter_face_setup, \ + lightmeter_face_activate, \ + lightmeter_face_loop, \ + lightmeter_face_resign, \ + NULL, \ +}) + +#endif // LIGHTMETER_FACE_H_ diff --git a/watch-library/shared/driver/opt3001.c b/watch-library/shared/driver/opt3001.c new file mode 100644 index 0000000..d2f4e8c --- /dev/null +++ b/watch-library/shared/driver/opt3001.c @@ -0,0 +1,91 @@ +/* + +Arduino library for Texas Instruments opt3001_t Digital Ambient Light Sensor +Written by AA for ClosedCube +Adapted to Sensor-Watch interface by CC +--- + +The MIT License (MIT) + +Copyright (c) 2015 ClosedCube Limited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ +#include + +#include "opt3001.h" +#include "watch_utility.h" + +uint16_t opt3001_readManufacturerID(uint8_t devaddr) { + uint8_t buf[2]; + buf[0] = (uint8_t) OPT3001_MANUFACTURER_ID; + watch_i2c_send(devaddr, buf, 1); + watch_i2c_receive(devaddr, buf, 2); + return ((uint16_t) buf[0] << 8) | ((uint16_t) buf[1]); +} + +uint16_t opt3001_readDeviceID(uint8_t devaddr) { + uint8_t buf[2]; + buf[0] = (uint8_t) OPT3001_DEVICE_ID; + watch_i2c_send(devaddr, buf, 1); + watch_i2c_receive(devaddr, buf, 2); + return ((uint16_t) buf[0] << 8) | ((uint16_t) buf[1]); +} + +opt3001_Config_t opt3001_readConfig(uint8_t devaddr) { + opt3001_Config_t config; + uint8_t buf[2]; + buf[0] = (uint8_t) OPT3001_CONFIG; + watch_i2c_send(devaddr, buf, 1); + watch_i2c_receive(devaddr, buf, 2); + config.rawData = ((uint16_t) buf[0] << 8) | ((uint16_t) buf[1]); + return config; +} + +void opt3001_writeConfig(uint8_t devaddr, opt3001_Config_t config) { + uint8_t buf[3] = {OPT3001_CONFIG, (uint8_t)(config.rawData >> 8), (uint8_t)(config.rawData & 0x00FF)}; + watch_i2c_send(devaddr, buf, 3); + return; +} + +opt3001_t opt3001_readResult(uint8_t devaddr) { + return opt3001_readRegister(devaddr, OPT3001_RESULT); +} + +opt3001_t opt3001_readHighLimit(uint8_t devaddr) { + return opt3001_readRegister(devaddr, OPT3001_HIGH_LIMIT); +} + +opt3001_t opt3001_readLowLimit(uint8_t devaddr) { + return opt3001_readRegister(devaddr, OPT3001_LOW_LIMIT); +} + +opt3001_t opt3001_readRegister(uint8_t devaddr, opt3001_Command_t command) { + opt3001_t result; + opt3001_ER_t er; + uint8_t buf[2]; + buf[0] = (uint8_t) command; + watch_i2c_send(devaddr, buf, 1); + watch_i2c_receive(devaddr, buf, 2); + er.rawData = ((uint16_t) buf[0] << 8) | ((uint16_t) buf[1]); + result.raw = er; + result.lux = 0.01*pow(2, er.Exponent)*er.Result; + return result; +} diff --git a/watch-library/shared/driver/opt3001.h b/watch-library/shared/driver/opt3001.h new file mode 100644 index 0000000..1ed8eea --- /dev/null +++ b/watch-library/shared/driver/opt3001.h @@ -0,0 +1,87 @@ +/* + +Arduino library for Texas Instruments OPT3001 Digital Ambient Light Sensor +Adapted to Sensor-Watch interface by CC +--- + +The MIT License (MIT) + +Copyright (c) 2015 ClosedCube Limited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +#ifndef OPT3001_ +#define OPT3001_ +#include + +typedef enum { + OPT3001_RESULT = 0x00, + OPT3001_CONFIG = 0x01, + OPT3001_LOW_LIMIT = 0x02, + OPT3001_HIGH_LIMIT = 0x03, + + OPT3001_MANUFACTURER_ID = 0x7E, + OPT3001_DEVICE_ID = 0x7F, +} opt3001_Command_t; + +typedef union { + uint16_t rawData; + struct { + uint16_t Result : 12; + uint8_t Exponent : 4; + }; +} opt3001_ER_t; + + +typedef union { + struct { + uint8_t FaultCount : 2; + uint8_t MaskExponent : 1; + uint8_t Polarity : 1; + uint8_t Latch : 1; + uint8_t FlagLow : 1; + uint8_t FlagHigh : 1; + uint8_t ConversionReady : 1; + uint8_t OverflowFlag : 1; + uint8_t ModeOfConversionOperation : 2; + uint8_t ConversionTime : 1; + uint8_t RangeNumber : 4; + }; + uint16_t rawData; +} opt3001_Config_t; + +typedef struct { + float lux; + opt3001_ER_t raw; +} opt3001_t; + +uint16_t opt3001_readManufacturerID(uint8_t devaddr); +uint16_t opt3001_readDeviceID(uint8_t devaddr); + +opt3001_t opt3001_readResult(uint8_t devaddr); +opt3001_t opt3001_readHighLimit(uint8_t devaddr); +opt3001_t opt3001_readLowLimit(uint8_t devaddr); + +opt3001_Config_t opt3001_readConfig(uint8_t devaddr); +void opt3001_writeConfig(uint8_t devaddr, opt3001_Config_t config); +opt3001_t opt3001_readRegister(uint8_t devaddr, opt3001_Command_t command); + +#endif // OPT3001_