mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 19:20:30 +08:00
Merge branch 'main' into timer-face
# Conflicts: # movement/make/Makefile # movement/movement_faces.h
This commit is contained in:
commit
7331851c77
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -17,4 +17,11 @@
|
|||
.idea/
|
||||
.vs
|
||||
.vscode
|
||||
docs/
|
||||
docs/
|
||||
*.kicad_sch-bak
|
||||
*-backups/
|
||||
*.bak
|
||||
_autosave*
|
||||
fp-info-cache
|
||||
.~*
|
||||
*.plan
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
(version 1)
|
|
@ -0,0 +1,493 @@
|
|||
(kicad_pcb (version 20211014) (generator pcbnew)
|
||||
|
||||
(general
|
||||
(thickness 0.19)
|
||||
)
|
||||
|
||||
(paper "A4")
|
||||
(layers
|
||||
(0 "F.Cu" signal)
|
||||
(31 "B.Cu" signal)
|
||||
(32 "B.Adhes" user "B.Adhesive")
|
||||
(33 "F.Adhes" user "F.Adhesive")
|
||||
(34 "B.Paste" user)
|
||||
(35 "F.Paste" user)
|
||||
(36 "B.SilkS" user "B.Silkscreen")
|
||||
(37 "F.SilkS" user "F.Silkscreen")
|
||||
(38 "B.Mask" user)
|
||||
(39 "F.Mask" user)
|
||||
(40 "Dwgs.User" user "User.Drawings")
|
||||
(41 "Cmts.User" user "User.Comments")
|
||||
(42 "Eco1.User" user "User.Eco1")
|
||||
(43 "Eco2.User" user "User.Eco2")
|
||||
(44 "Edge.Cuts" user)
|
||||
(45 "Margin" user)
|
||||
(46 "B.CrtYd" user "B.Courtyard")
|
||||
(47 "F.CrtYd" user "F.Courtyard")
|
||||
(48 "B.Fab" user)
|
||||
(49 "F.Fab" user)
|
||||
(50 "User.1" user)
|
||||
(51 "User.2" user)
|
||||
(52 "User.3" user)
|
||||
(53 "User.4" user)
|
||||
(54 "User.5" user)
|
||||
(55 "User.6" user)
|
||||
(56 "User.7" user)
|
||||
(57 "User.8" user)
|
||||
(58 "User.9" user)
|
||||
)
|
||||
|
||||
(setup
|
||||
(stackup
|
||||
(layer "F.SilkS" (type "Top Silk Screen") (color "White"))
|
||||
(layer "F.Paste" (type "Top Solder Paste"))
|
||||
(layer "F.Mask" (type "Top Solder Mask") (color "#CC66004D") (thickness 0.01))
|
||||
(layer "F.Cu" (type "copper") (thickness 0.035))
|
||||
(layer "dielectric 1" (type "core") (thickness 0.1) (material "Polyimide") (epsilon_r 3.2) (loss_tangent 0.004))
|
||||
(layer "B.Cu" (type "copper") (thickness 0.035))
|
||||
(layer "B.Mask" (type "Bottom Solder Mask") (color "#CC66004D") (thickness 0.01))
|
||||
(layer "B.Paste" (type "Bottom Solder Paste"))
|
||||
(layer "B.SilkS" (type "Bottom Silk Screen") (color "White"))
|
||||
(copper_finish "None")
|
||||
(dielectric_constraints no)
|
||||
)
|
||||
(pad_to_mask_clearance 0)
|
||||
(pcbplotparams
|
||||
(layerselection 0x00010fc_ffffffff)
|
||||
(disableapertmacros false)
|
||||
(usegerberextensions false)
|
||||
(usegerberattributes true)
|
||||
(usegerberadvancedattributes true)
|
||||
(creategerberjobfile true)
|
||||
(svguseinch false)
|
||||
(svgprecision 6)
|
||||
(excludeedgelayer true)
|
||||
(plotframeref false)
|
||||
(viasonmask false)
|
||||
(mode 1)
|
||||
(useauxorigin false)
|
||||
(hpglpennumber 1)
|
||||
(hpglpenspeed 20)
|
||||
(hpglpendiameter 15.000000)
|
||||
(dxfpolygonmode true)
|
||||
(dxfimperialunits true)
|
||||
(dxfusepcbnewfont true)
|
||||
(psnegative false)
|
||||
(psa4output false)
|
||||
(plotreference true)
|
||||
(plotvalue true)
|
||||
(plotinvisibletext false)
|
||||
(sketchpadsonfab false)
|
||||
(subtractmaskfromsilk false)
|
||||
(outputformat 1)
|
||||
(mirror false)
|
||||
(drillshape 0)
|
||||
(scaleselection 1)
|
||||
(outputdirectory "OSO-SWAB-B1-00")
|
||||
)
|
||||
)
|
||||
|
||||
(net 0 "")
|
||||
(net 1 "/A1_RX")
|
||||
(net 2 "/A2_TX")
|
||||
(net 3 "/A4_INT1")
|
||||
(net 4 "GND")
|
||||
(net 5 "/A3_INT2")
|
||||
(net 6 "/SDA")
|
||||
(net 7 "/SCL")
|
||||
(net 8 "VCC")
|
||||
(net 9 "/A0_UNUSED")
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:FH19C9S05SH10-FFC" (layer "F.Cu")
|
||||
(tedit 0) (tstamp c450d786-1278-4a96-8a62-a0d27859c515)
|
||||
(at 153.2255 106.7461)
|
||||
(descr "<b>FH19C-9S-0.5SH(10)-1</b><br>\n")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/4dc3cbb6-fb37-42a6-81e4-ab57e8e35700")
|
||||
(fp_text reference "U$3" (at 0 0) (layer "F.SilkS") hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||
(tstamp 9040ae45-373a-45fc-adb3-fcfaa02764b2)
|
||||
)
|
||||
(fp_text value "FH19C-9S-0.5SH_10-FFC" (at 0 0) (layer "F.Fab") hide
|
||||
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||
(tstamp 5af4c90c-a654-4d3a-80bb-293a78da42b9)
|
||||
)
|
||||
(fp_poly (pts
|
||||
(xy 2.56543 3.556)
|
||||
(xy -2.56537 3.556)
|
||||
(xy -2.56643 0.898)
|
||||
(xy 2.56437 0.898)
|
||||
) (layer "B.Mask") (width 0) (fill solid) (tstamp 21283db5-1009-43c5-a3ef-4954974a3a30))
|
||||
(pad "1" smd rect (at 2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "1") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp b2e7f160-81a2-4f3a-9cac-d6cba543336c))
|
||||
(pad "2" smd rect (at 1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "2") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 4a8a2808-da08-4211-a839-b545ca46843d))
|
||||
(pad "3" smd rect (at 1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 3 "/A4_INT1") (pinfunction "3") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 1ad63a96-1ef2-463e-9ea7-81ba46599172))
|
||||
(pad "4" smd rect (at 0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 5 "/A3_INT2") (pinfunction "4") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 44970b45-f7b0-47cc-a114-209df0456d8f))
|
||||
(pad "5" smd rect (at 0 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 2 "/A2_TX") (pinfunction "5") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 16a60cfb-4140-483f-9675-22643c201dcd))
|
||||
(pad "6" smd rect (at -0.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 1 "/A1_RX") (pinfunction "6") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp edf03a5b-8be1-48f8-8f16-4719d937182d))
|
||||
(pad "7" smd rect (at -1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 6 "/SDA") (pinfunction "7") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp b54a21f9-d0ee-47bd-8a33-6d2ccb2f1964))
|
||||
(pad "8" smd rect (at -1.5 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 7 "/SCL") (pinfunction "8") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 496964dd-0d25-423f-9576-ddcd7d92b9c0))
|
||||
(pad "9" smd rect (at -2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(net 9 "/A0_UNUSED") (pinfunction "9") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp 6a847b13-3d48-4df7-8dd7-d515f51aacbf))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:LGA12R50P4X4_200X200X70" (layer "B.Cu")
|
||||
(tedit 0) (tstamp 38449293-6eb3-4fce-a813-980a83af30a5)
|
||||
(at 145.3261 101.9201 180)
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/f61a4c5e-e4e7-40df-976e-1899d4c8a12a")
|
||||
(fp_text reference "U2" (at 0.02175 2.6201) (layer "B.SilkS")
|
||||
(effects (font (size 0.406899 0.406899) (thickness 0.101101)) (justify left mirror))
|
||||
(tstamp 2fb12f0c-a2cb-4979-8ff3-7261f4205a8f)
|
||||
)
|
||||
(fp_text value "LIS2DW12TR" (at -1.501141 -2.001519) (layer "B.Fab")
|
||||
(effects (font (size 0.406974 0.406974) (thickness 0.101026)) (justify left mirror))
|
||||
(tstamp 79ae9206-147d-40c8-b439-c5e1aa71ef7c)
|
||||
)
|
||||
(fp_line (start -1.05 -0.555) (end -1.05 -1.05) (layer "B.SilkS") (width 0.127) (tstamp 02ae2e5e-0358-428d-9b47-799126b254ae))
|
||||
(fp_line (start 1.05 -1.05) (end 1.05 -0.555) (layer "B.SilkS") (width 0.127) (tstamp 29d50b3c-acc8-4899-ab05-b18d21ab3b3c))
|
||||
(fp_line (start 0.555 1.05) (end 1.05 1.05) (layer "B.SilkS") (width 0.127) (tstamp 3ccbbde2-8e04-400e-bf38-caa624eba487))
|
||||
(fp_line (start -1.05 0.555) (end -1.05 1.05) (layer "B.SilkS") (width 0.127) (tstamp 418272bc-4a1c-4292-abcc-02abb40a91b1))
|
||||
(fp_line (start 1.05 1.05) (end 1.05 0.555) (layer "B.SilkS") (width 0.127) (tstamp 6b1bdfd4-bd5f-4649-8e19-6c646bd31d41))
|
||||
(fp_line (start -1.05 1.05) (end -0.555 1.05) (layer "B.SilkS") (width 0.127) (tstamp b9246ad8-1e96-4d28-8417-be94c523f7fa))
|
||||
(fp_line (start 0.555 -1.05) (end 1.05 -1.05) (layer "B.SilkS") (width 0.127) (tstamp bfa111e0-c472-4d7f-9f9f-eb6d8452f0bc))
|
||||
(fp_line (start -1.05 -1.05) (end -0.555 -1.05) (layer "B.SilkS") (width 0.127) (tstamp ed58876d-2aff-4c39-a693-85bc921546dc))
|
||||
(fp_circle (center -1.5 0.75) (end -1.45 0.75) (layer "B.SilkS") (width 0.1) (fill none) (tstamp eed4a4a1-5971-4468-a0eb-4adabc23ee91))
|
||||
(fp_line (start -1.25 -1.25) (end -1.25 1.25) (layer "B.CrtYd") (width 0.05) (tstamp 0c936eb0-2bed-42c5-a43a-a8c2138d10f6))
|
||||
(fp_line (start 1.25 1.25) (end 1.25 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp b9af5acd-a7ff-4d1f-a5af-28344932ba28))
|
||||
(fp_line (start -1.25 1.25) (end 1.25 1.25) (layer "B.CrtYd") (width 0.05) (tstamp df602652-97d0-42fe-8c45-0c9e9cdbab8a))
|
||||
(fp_line (start 1.25 -1.25) (end -1.25 -1.25) (layer "B.CrtYd") (width 0.05) (tstamp e6004e06-b498-4cbf-a2cd-4065cdd9ac30))
|
||||
(fp_line (start 1 1) (end 1 -1) (layer "B.Fab") (width 0.127) (tstamp 04b92bea-33f5-431d-87c9-1b951c5a0895))
|
||||
(fp_line (start 1 -1) (end -1 -1) (layer "B.Fab") (width 0.127) (tstamp 8c6e9c84-beb1-4bc6-b6c0-93f5915e6d31))
|
||||
(fp_line (start -1 -1) (end -1 1) (layer "B.Fab") (width 0.127) (tstamp c65c8660-c3aa-4e44-a24a-c0839e96ffe1))
|
||||
(fp_line (start -1 1) (end 1 1) (layer "B.Fab") (width 0.127) (tstamp c9623f6f-a650-4e25-8bd7-692927ca8f9d))
|
||||
(fp_circle (center -0.75 0.75) (end -0.7 0.75) (layer "B.Fab") (width 0.1) (fill none) (tstamp 06bb0748-9b94-4559-8b9c-a59aa1c8ab55))
|
||||
(pad "1" smd rect (at -0.76 0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 7 "/SCL") (pinfunction "SCL/SPC") (pintype "input") (solder_mask_margin 0.0635) (tstamp 3db7e36b-889f-4f74-9156-b304ec17949b))
|
||||
(pad "2" smd rect (at -0.76 0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "CS") (pintype "input") (solder_mask_margin 0.0635) (tstamp 358727b9-955e-4b0e-8f93-faac9b591622))
|
||||
(pad "3" smd rect (at -0.76 -0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "SDO/SDA0") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp bf192f28-5a1f-4b77-af0f-de5ad059ed8c))
|
||||
(pad "4" smd rect (at -0.76 -0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 6 "/SDA") (pinfunction "SDA/SDI/SDO") (pintype "bidirectional") (solder_mask_margin 0.0635) (tstamp ec19640d-d714-4214-b3c1-ade84ffe1184))
|
||||
(pad "5" smd rect (at -0.25 -0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 98922bc7-e895-48ee-8f8c-8718a306a6e9))
|
||||
(pad "6" smd rect (at 0.25 -0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "GND") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp 1ae80af8-dac6-46a2-88cc-ea6877872716))
|
||||
(pad "7" smd rect (at 0.76 -0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "RES") (pintype "passive") (solder_mask_margin 0.0635) (tstamp ed3d45a3-b988-41b3-8d80-5013f0b90226))
|
||||
(pad "8" smd rect (at 0.76 -0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "GND") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp afff67d6-aa97-4848-86fb-883a57bddf5a))
|
||||
(pad "9" smd rect (at 0.76 0.25 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "VDD") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp a4de6280-2a67-4f62-9a7b-e57bae02df74))
|
||||
(pad "10" smd rect (at 0.76 0.75 180) (size 0.4 0.35) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "VDD_IO") (pintype "power_in") (solder_mask_margin 0.0635) (tstamp 861bccff-e93d-4aab-b5fb-31ba7ca49f23))
|
||||
(pad "11" smd rect (at 0.25 0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 5 "/A3_INT2") (pinfunction "INT2") (pintype "output") (solder_mask_margin 0.0635) (tstamp 8581ef53-a74b-453a-a79a-1ad12a5b60be))
|
||||
(pad "12" smd rect (at -0.25 0.76 180) (size 0.35 0.4) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 3 "/A4_INT1") (pinfunction "INT1") (pintype "output") (solder_mask_margin 0.0635) (tstamp 651bf078-2bd8-4627-9a4d-396860ade5d0))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:_0603MP" (layer "B.Cu")
|
||||
(tedit 0) (tstamp 52f3f076-84fe-4d87-b520-c9ec8ac43cd8)
|
||||
(at 142.4051 101.3359 90)
|
||||
(descr "<b>0603 MicroPitch</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/dbf111d5-5941-4c1b-8fad-675981ce34f4")
|
||||
(fp_text reference "C2" (at 2.0359 0.3949 180) (layer "B.SilkS")
|
||||
(effects (font (size 0.388031 0.388031) (thickness 0.119969)) (justify left mirror))
|
||||
(tstamp 9bd4d62d-7a56-42ce-b3f5-7a6d01978996)
|
||||
)
|
||||
(fp_text value "10uF" (at -0.9525 -0.9525 90) (layer "B.Fab")
|
||||
(effects (font (size 0.442163 0.442163) (thickness 0.065837)) (justify left mirror))
|
||||
(tstamp dd43d085-ec5b-4b38-8a0a-a3e36d67876d)
|
||||
)
|
||||
(fp_poly (pts
|
||||
(xy -0.1999 -0.25)
|
||||
(xy 0.1999 -0.25)
|
||||
(xy 0.1999 0.25)
|
||||
(xy -0.1999 0.25)
|
||||
) (layer "B.Adhes") (width 0) (fill solid) (tstamp bf433100-c31b-441a-977d-11c8dfea5e5d))
|
||||
(fp_line (start 0 0.254) (end 0 -0.254) (layer "B.SilkS") (width 0.2032) (tstamp c0b3ca6d-cbf4-4a4a-829a-bd12e3d6f696))
|
||||
(fp_line (start 0.432 0.306) (end -0.432 0.306) (layer "B.Fab") (width 0.1016) (tstamp 62361dc9-703b-4d4c-9ead-64531412f98d))
|
||||
(fp_line (start -0.432 -0.306) (end 0.432 -0.306) (layer "B.Fab") (width 0.1016) (tstamp f78d3c08-172c-4642-a357-be3cd6805e97))
|
||||
(fp_poly (pts
|
||||
(xy 0.4318 -0.4)
|
||||
(xy 0.8 -0.4)
|
||||
(xy 0.8 0.4)
|
||||
(xy 0.4318 0.4)
|
||||
) (layer "B.Fab") (width 0) (fill solid) (tstamp 430dd9e0-a77c-40c2-a434-88901e1d63f9))
|
||||
(fp_poly (pts
|
||||
(xy -0.8 -0.4)
|
||||
(xy -0.4318 -0.4)
|
||||
(xy -0.4318 0.4)
|
||||
(xy -0.8 0.4)
|
||||
) (layer "B.Fab") (width 0) (fill solid) (tstamp e99999ac-764f-42aa-af5f-f6b490544976))
|
||||
(pad "1" smd rect (at -0.762 0 90) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "1") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 05f47ce8-fbff-4c88-a713-924ebec9cd7f))
|
||||
(pad "2" smd rect (at 0.762 0 90) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "2") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 3418d403-467d-4e3f-8239-51594743a971))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
|
||||
(tedit 0) (tstamp 53397a02-3122-469f-8a6e-5586e1d48a70)
|
||||
(at 144.8435 104.4601 180)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/1936aa8e-84b5-486e-a2d5-81ae44fd41c7")
|
||||
(fp_text reference "TP3" (at -1.0668 0.3302) (layer "B.SilkS") hide
|
||||
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
|
||||
(tstamp a286de89-e15e-41ca-972a-92b40dbbd887)
|
||||
)
|
||||
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
|
||||
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
|
||||
(tstamp 0f58640a-48e4-4c58-8582-c0d0f03f67c9)
|
||||
)
|
||||
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
|
||||
(net 2 "/A2_TX") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 37a22dff-bef4-4a54-aa97-606b44b0539d))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
|
||||
(tedit 0) (tstamp 8492a13d-c2e7-4353-90d5-a0194203e30e)
|
||||
(at 146.2659 105.0951 180)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/a4b4c4fb-1c78-4a88-b6d6-c95ced14e6a1")
|
||||
(fp_text reference "TP4" (at -1.0668 0) (layer "B.SilkS") hide
|
||||
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
|
||||
(tstamp ec765bc0-6a42-4727-9951-7e00656f3a23)
|
||||
)
|
||||
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
|
||||
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
|
||||
(tstamp 4d040dbd-23bd-4b9e-9905-fecd7f7a7e91)
|
||||
)
|
||||
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
|
||||
(net 1 "/A1_RX") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 964091ca-8bbe-4ac8-aaf6-8ee79894dac0))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:_0603MP" (layer "B.Cu")
|
||||
(tedit 0) (tstamp 92f1bd8b-af09-4166-bc64-aef654c0183a)
|
||||
(at 143.6243 101.3359 -90)
|
||||
(descr "<b>0603 MicroPitch</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/81f117f8-2e22-4d95-9843-a6438cc9b8fd")
|
||||
(fp_text reference "C1" (at -2.0359 0.3243 -180) (layer "B.SilkS")
|
||||
(effects (font (size 0.388031 0.388031) (thickness 0.119969)) (justify right mirror))
|
||||
(tstamp 16e2b64b-b1f1-4a7b-a067-eb93b95619a3)
|
||||
)
|
||||
(fp_text value "0.1uF" (at -0.9525 -0.9525 -270) (layer "B.Fab")
|
||||
(effects (font (size 0.442163 0.442163) (thickness 0.065837)) (justify right mirror))
|
||||
(tstamp e0be7d00-bf2d-45a1-865e-97f1376ca4dd)
|
||||
)
|
||||
(fp_poly (pts
|
||||
(xy -0.1999 -0.25)
|
||||
(xy 0.1999 -0.25)
|
||||
(xy 0.1999 0.25)
|
||||
(xy -0.1999 0.25)
|
||||
) (layer "B.Adhes") (width 0) (fill solid) (tstamp 737141da-8a5b-4eb5-a94c-2d98ea03ea2b))
|
||||
(fp_line (start 0 0.254) (end 0 -0.254) (layer "B.SilkS") (width 0.2032) (tstamp 3cb29946-354e-4d69-8954-0cb5df5feb34))
|
||||
(fp_line (start -0.432 -0.306) (end 0.432 -0.306) (layer "B.Fab") (width 0.1016) (tstamp 58356900-2195-4f68-aa48-0fbeed8a0258))
|
||||
(fp_line (start 0.432 0.306) (end -0.432 0.306) (layer "B.Fab") (width 0.1016) (tstamp d1fc816b-12b7-4411-becf-b39225ef5a06))
|
||||
(fp_poly (pts
|
||||
(xy 0.4318 -0.4)
|
||||
(xy 0.8 -0.4)
|
||||
(xy 0.8 0.4)
|
||||
(xy 0.4318 0.4)
|
||||
) (layer "B.Fab") (width 0) (fill solid) (tstamp 372669d9-06c5-4965-b34a-bd1ca4aba83d))
|
||||
(fp_poly (pts
|
||||
(xy -0.8 -0.4)
|
||||
(xy -0.4318 -0.4)
|
||||
(xy -0.4318 0.4)
|
||||
(xy -0.8 0.4)
|
||||
) (layer "B.Fab") (width 0) (fill solid) (tstamp 3d2b07eb-66f2-4ca0-8b52-77b42ce79ea8))
|
||||
(pad "1" smd rect (at -0.762 0 270) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 8 "VCC") (pinfunction "1") (pintype "passive") (solder_mask_margin 0.0635) (tstamp f408e8b3-d3b1-4975-afa3-6edd4111b541))
|
||||
(pad "2" smd rect (at 0.762 0 270) (size 0.8 0.8) (layers "B.Cu" "B.Paste" "B.Mask")
|
||||
(net 4 "GND") (pinfunction "2") (pintype "passive") (solder_mask_margin 0.0635) (tstamp 5fefcc14-df85-4c73-a324-fe9d5f1fa478))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
|
||||
(tedit 0) (tstamp d47e36a3-5090-4cf4-bf91-6b011b5fab8a)
|
||||
(at 142.3035 103.3044 180)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/6ea9dd18-adcc-4aba-8efa-d45943bee5d6")
|
||||
(fp_text reference "TP1" (at 0.4064 -1.2954 270) (layer "B.SilkS") hide
|
||||
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify right mirror))
|
||||
(tstamp 8643f50e-4c54-42e3-8f4e-9e7c565345a4)
|
||||
)
|
||||
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
|
||||
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
|
||||
(tstamp 0ca4bbc5-6d45-40ae-a4b8-b0264327e89b)
|
||||
)
|
||||
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
|
||||
(net 4 "GND") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp b69db92a-8dc0-4427-8729-230fe7829975))
|
||||
)
|
||||
|
||||
(footprint "OSO-MISC-21-021 Sensor Watch Motion II:B1,27" (layer "B.Cu")
|
||||
(tedit 0) (tstamp d5562657-0bb5-4045-b7d6-e98fd391f4a3)
|
||||
(at 143.3195 104.4601 180)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(property "Sheetfile" "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_sch")
|
||||
(property "Sheetname" "")
|
||||
(path "/ec24969b-8391-44db-a79f-3fa50f7e4597")
|
||||
(fp_text reference "TP2" (at -0.4064 0.8636) (layer "B.SilkS") hide
|
||||
(effects (font (size 0.30226 0.30226) (thickness 0.075565)) (justify left mirror))
|
||||
(tstamp 3eb69f50-8679-4783-841b-f3e56c6658ed)
|
||||
)
|
||||
(fp_text value "TPB1,27" (at -0.635 -0.762) (layer "B.Fab")
|
||||
(effects (font (size 0.503794 0.503794) (thickness 0.004206)) (justify left mirror))
|
||||
(tstamp de2ea6ae-7e35-4c49-af6d-0ddbb267d18e)
|
||||
)
|
||||
(pad "TP" smd roundrect (at 0 0 180) (size 1.27 1.27) (layers "B.Cu" "B.Mask") (roundrect_rratio 0.5)
|
||||
(net 8 "VCC") (pinfunction "TP") (pintype "input") (solder_mask_margin 0.0635) (tstamp 1b224beb-e21a-4340-ac2c-31b7fa1f7f8e))
|
||||
)
|
||||
|
||||
(gr_line (start 155.7147 105.0951) (end 147.5105 105.0951) (layer "F.SilkS") (width 0.127) (tstamp 09b40b31-a75f-48c5-94ff-dac04c6dfaf8))
|
||||
(gr_line (start 147.0025 100.5231) (end 147.0025 104.5871) (layer "F.SilkS") (width 0.127) (tstamp 59eee44c-9efd-402f-80e1-02593f15460b))
|
||||
(gr_arc (start 146.2405 99.7611) (mid 146.779315 99.984285) (end 147.0025 100.5231) (layer "F.SilkS") (width 0.127) (tstamp a8fc3609-a41b-4706-8233-14786995acaa))
|
||||
(gr_arc (start 147.5105 105.0951) (mid 147.15129 104.94631) (end 147.0025 104.5871) (layer "F.SilkS") (width 0.127) (tstamp d204339c-8036-43d2-8aa8-268d985f6138))
|
||||
(gr_line (start 144.2 105.9) (end 144.7 105.9) (layer "F.Mask") (width 0.1) (tstamp 45263c40-98a9-4f74-a47a-9075d46d8655))
|
||||
(gr_line (start 150.7363 106.7461) (end 150.7363 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp 2af795e8-c9a1-416f-b2d3-8be4310d296e))
|
||||
(gr_arc (start 150.8863 110.2461) (mid 150.780234 110.202166) (end 150.7363 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp 58502658-0694-45f6-94e7-5aca0f57af62))
|
||||
(gr_line (start 150.1013 106.1111) (end 145.3515 106.1111) (layer "Edge.Cuts") (width 0.05) (tstamp 5e539d5b-e49f-4f77-9569-2a4261264736))
|
||||
(gr_line (start 144.7165 105.4761) (end 142.1765 105.4761) (layer "Edge.Cuts") (width 0.05) (tstamp 6ac0bb29-69f1-4b1d-b893-957a8916a1bb))
|
||||
(gr_arc (start 144.7165 105.4761) (mid 145.165513 105.662087) (end 145.3515 106.1111) (layer "Edge.Cuts") (width 0.05) (tstamp 6b9e5d6b-5222-465f-9b1e-93af00265572))
|
||||
(gr_arc (start 150.1013 106.1111) (mid 150.550313 106.297087) (end 150.7363 106.7461) (layer "Edge.Cuts") (width 0.05) (tstamp 7f938717-4068-4e5c-92a0-7210bbdd7788))
|
||||
(gr_arc (start 155.3337 99.7611) (mid 155.603108 99.872692) (end 155.7147 100.1421) (layer "Edge.Cuts") (width 0.05) (tstamp 9b7def2b-3536-42b1-8e65-4b8e423042d7))
|
||||
(gr_arc (start 142.1765 105.4761) (mid 141.547882 105.215718) (end 141.2875 104.5871) (layer "Edge.Cuts") (width 0.05) (tstamp 9b9870d6-49b4-40a8-b847-cb5468c63035))
|
||||
(gr_line (start 155.7147 100.1421) (end 155.7147 106.7461) (layer "Edge.Cuts") (width 0.05) (tstamp a6bc6301-abbd-4acf-a77d-1f4e4d107e79))
|
||||
(gr_line (start 155.5647 110.2461) (end 150.8863 110.2461) (layer "Edge.Cuts") (width 0.05) (tstamp ae418f09-9594-49fa-ba14-c5ebf3097fc7))
|
||||
(gr_line (start 142.1765 99.7611) (end 155.3337 99.7611) (layer "Edge.Cuts") (width 0.05) (tstamp b5d214ca-8d2c-4892-a145-ebcdf525979d))
|
||||
(gr_arc (start 141.2875 100.6501) (mid 141.547882 100.021482) (end 142.1765 99.7611) (layer "Edge.Cuts") (width 0.05) (tstamp c4d82428-36d7-43c8-9bfb-b2beed9359df))
|
||||
(gr_line (start 155.7147 106.7461) (end 155.7147 110.0961) (layer "Edge.Cuts") (width 0.05) (tstamp dc2cbabd-f370-406b-b50e-bb3846cd95ff))
|
||||
(gr_arc (start 155.7147 110.0961) (mid 155.670766 110.202166) (end 155.5647 110.2461) (layer "Edge.Cuts") (width 0.05) (tstamp e1f2d86b-fcc6-43fe-bbcc-417ac237e0bd))
|
||||
(gr_line (start 141.2875 104.5871) (end 141.2875 100.6501) (layer "Edge.Cuts") (width 0.05) (tstamp e960ff40-d2dc-4f31-aa56-c3592606d2b4))
|
||||
(gr_text "TX" (at 144.9 103.3) (layer "B.SilkS") (tstamp 2cd2031e-bdc6-4b09-a5d6-627ebbcee21c)
|
||||
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
|
||||
)
|
||||
(gr_text "RX" (at 146.3 103.9) (layer "B.SilkS") (tstamp 5e112429-2dc1-437d-8792-2c6553eb0f93)
|
||||
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
|
||||
)
|
||||
(gr_text "GND" (at 141.8 104.4 -90) (layer "B.SilkS") (tstamp 72b454f6-3d75-4170-9db1-78a51d4c0e67)
|
||||
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
|
||||
)
|
||||
(gr_text "3V" (at 142.4 105) (layer "B.SilkS") (tstamp f65b8e04-fbde-4466-addc-36be3d61856b)
|
||||
(effects (font (size 0.4 0.4) (thickness 0.075)) (justify top mirror))
|
||||
)
|
||||
(gr_text "I²C: LIS2DW12 (0x19)\nA1/A2: UART RX/TX\nA3/A4: INT2/INT1\n" (at 151.4475 102.8853) (layer "F.SilkS") (tstamp 06718050-7404-4593-8900-5367d4556e53)
|
||||
(effects (font (size 0.44704 0.44704) (thickness 0.06096)) (justify top))
|
||||
)
|
||||
(gr_text "OSO-SWAB-B2-00\nSW Accelerometer:\nDeveloper Preview" (at 151.4475 100.0913) (layer "F.SilkS") (tstamp 1a8b05a9-bccd-4ebd-8312-af5738af914c)
|
||||
(effects (font (size 0.499872 0.499872) (thickness 0.109728)) (justify top))
|
||||
)
|
||||
|
||||
(segment (start 149.73135 105.23315) (end 149.5933 105.0951) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 0bae9b38-d794-4972-b292-0160f8d78e32))
|
||||
(segment (start 148.0693 105.0951) (end 149.5933 105.0951) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 46023c51-300f-4e42-afb4-010034d44dac))
|
||||
(segment (start 151.20785 105.23315) (end 149.73135 105.23315) (width 0.2032) (layer "F.Cu") (net 1) (tstamp 52c0f5dc-54c3-478f-9860-ccb50104bb0b))
|
||||
(via (at 148.0693 105.0951) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 1) (tstamp e39680a8-e74a-46a6-a545-ac5ad0aa7f34))
|
||||
(via (at 151.20785 105.23315) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 1) (tstamp fbd986c1-ed36-4026-b812-e3868a5e2ad8))
|
||||
(segment (start 146.2659 105.0951) (end 148.0693 105.0951) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 3a4f4d1c-4c47-490a-b760-933c1c17288d))
|
||||
(segment (start 152.7255 106.7508) (end 151.20785 105.23315) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 5a7537b8-356a-483f-afb1-7f541c63a2bb))
|
||||
(segment (start 152.7255 108.9961) (end 152.7255 106.7508) (width 0.2032) (layer "B.Cu") (net 1) (tstamp 8ff819c8-6284-4bec-859f-4051f056dd5d))
|
||||
(segment (start 150.77605 104.69975) (end 150.2316 104.1553) (width 0.2032) (layer "F.Cu") (net 2) (tstamp 64f42c98-92a4-4baa-b4b3-05e7803c7f63))
|
||||
(segment (start 150.2316 104.1553) (end 146.8501 104.1553) (width 0.2032) (layer "F.Cu") (net 2) (tstamp 8306564e-5a9a-4496-9d00-07c1bd5d26b9))
|
||||
(via (at 150.77605 104.69975) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 2) (tstamp 99809845-4da0-4cf1-bc62-c9244dba4647))
|
||||
(via (at 146.8501 104.1553) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 2) (tstamp e676c03d-34a8-4263-88a7-40dae634a5e2))
|
||||
(segment (start 144.8435 104.4601) (end 145.1483 104.1553) (width 0.2032) (layer "B.Cu") (net 2) (tstamp 37789217-9964-4e49-8f73-d44995c5fc7e))
|
||||
(segment (start 151.51265 104.69975) (end 150.77605 104.69975) (width 0.2032) (layer "B.Cu") (net 2) (tstamp 5857a90c-f5a9-4b24-a98c-479fad8de298))
|
||||
(segment (start 153.2255 108.9961) (end 153.2255 106.4126) (width 0.2032) (layer "B.Cu") (net 2) (tstamp cae21fe2-e35b-4a44-bcf5-92de0998264c))
|
||||
(segment (start 146.8501 104.1553) (end 145.1483 104.1553) (width 0.2032) (layer "B.Cu") (net 2) (tstamp f4f1004d-dd60-429f-8283-9f030f526130))
|
||||
(segment (start 153.2255 106.4126) (end 151.51265 104.69975) (width 0.2032) (layer "B.Cu") (net 2) (tstamp fbcc5301-bbbf-4c9f-b660-fd98838053a6))
|
||||
(segment (start 154.2255 107.3959) (end 154.0985 107.2689) (width 0.2032) (layer "B.Cu") (net 3) (tstamp 7ebf6bd5-822c-4407-8d1a-08d43c2d0678))
|
||||
(segment (start 154.0985 106.079475) (end 154.0985 107.2689) (width 0.2032) (layer "B.Cu") (net 3) (tstamp 8a4485c7-f427-446f-af34-1128a47c425d))
|
||||
(segment (start 145.780813 100.7009) (end 148.719925 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp b08ebf16-1549-411d-8fab-75c6d1bd76cb))
|
||||
(segment (start 145.5761 100.905613) (end 145.780813 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp b21f3bbb-f1c1-4554-ac75-e53c16d27653))
|
||||
(segment (start 154.0985 106.079475) (end 148.719925 100.7009) (width 0.2032) (layer "B.Cu") (net 3) (tstamp e5d7d599-d647-4e18-96d9-808d318d07c5))
|
||||
(segment (start 154.2255 108.9961) (end 154.2255 107.3959) (width 0.2032) (layer "B.Cu") (net 3) (tstamp e9b07d7a-e899-4ca0-9369-e0d0ebb1ab10))
|
||||
(segment (start 145.5761 101.1601) (end 145.5761 100.905613) (width 0.2032) (layer "B.Cu") (net 3) (tstamp febdebfd-50f2-4c7a-baca-c05d26479bd3))
|
||||
(segment (start 146.8534 103.1139) (end 146.7772 103.1901) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 06fcdb8f-2704-46cd-b30d-dcb7b02e58da))
|
||||
(segment (start 154.61145 106.83335) (end 150.892 103.1139) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 1fa3df21-bfa8-4c91-9bb0-d56e9306f2bf))
|
||||
(segment (start 150.892 103.1139) (end 146.8534 103.1139) (width 0.3048) (layer "F.Cu") (net 4) (tstamp 8f443325-1180-471c-a3e1-92e2115c8bf9))
|
||||
(via (at 154.61145 106.83335) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 4) (tstamp 1b9c6030-7343-4ac8-a6d0-411c1c118821))
|
||||
(via (at 146.7772 103.1901) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 4) (tstamp 7c1347fe-33ec-4ab3-b26c-77a73b0799f2))
|
||||
(segment (start 142.4051 102.0979) (end 143.6243 102.0979) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 07ac1533-fe72-4f36-a863-388b14a75fc5))
|
||||
(segment (start 142.3035 103.3044) (end 142.4051 103.2028) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 0ae5de39-695f-4104-bcec-54b83e33bae2))
|
||||
(segment (start 144.5661 102.6701) (end 145.0661 102.6701) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 391f44de-b221-459d-83d3-1c670da7efe7))
|
||||
(segment (start 144.5661 102.1741) (end 144.5661 102.1701) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 3d9119fb-5155-4df7-a94a-e63bdeca035d))
|
||||
(segment (start 144.5661 102.6701) (end 144.5661 102.1741) (width 0.2032) (layer "B.Cu") (net 4) (tstamp 733bf9c6-aa1d-46f9-b366-35a9f20a2249))
|
||||
(segment (start 154.7255 108.9961) (end 154.7255 106.9474) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 8c334ef6-ea14-4d64-923e-8c370645175a))
|
||||
(segment (start 145.28005 103.1901) (end 145.0761 102.98615) (width 0.3048) (layer "B.Cu") (net 4) (tstamp 903215f2-2ab4-494a-8eda-17fc50d3bed0))
|
||||
(segment (start 145.0661 102.6701) (end 145.0761 102.6801) (width 0.2032) (layer "B.Cu") (net 4) (tstamp a077552a-b221-43cc-9938-5d4743e3399d))
|
||||
(segment (start 143.6243 102.0979) (end 143.7005 102.1741) (width 0.3048) (layer "B.Cu") (net 4) (tstamp a26ae543-f877-4e55-8489-6ed81f3bfbf5))
|
||||
(segment (start 145.0761 102.6801) (end 145.0761 102.98615) (width 0.3048) (layer "B.Cu") (net 4) (tstamp b424a39d-8974-4555-8ffe-a4b9f275773a))
|
||||
(segment (start 142.4051 103.2028) (end 142.4051 102.0979) (width 0.3048) (layer "B.Cu") (net 4) (tstamp c2b57f9a-4cbb-409a-89ca-80ae105c720e))
|
||||
(segment (start 154.7255 106.9474) (end 154.61145 106.83335) (width 0.3048) (layer "B.Cu") (net 4) (tstamp da906691-c7ce-473f-afa0-e74ab9381761))
|
||||
(segment (start 145.28005 103.1901) (end 146.7772 103.1901) (width 0.3048) (layer "B.Cu") (net 4) (tstamp fcfeaa1c-0530-4b57-aa65-515779c79adc))
|
||||
(segment (start 143.7005 102.1741) (end 144.5661 102.1741) (width 0.3048) (layer "B.Cu") (net 4) (tstamp fe08666b-5748-4b31-8ca5-897a10c1698b))
|
||||
(segment (start 146.3675 101.7677) (end 145.4785 101.7677) (width 0.2032) (layer "F.Cu") (net 5) (tstamp 4b68e877-273f-48ca-a632-c41e8488ccf3))
|
||||
(segment (start 146.5199 101.9201) (end 146.3675 101.7677) (width 0.2032) (layer "F.Cu") (net 5) (tstamp 918e83c5-b7c2-44c1-b47f-0ab29c1c70b5))
|
||||
(segment (start 146.5199 101.9201) (end 147.3835 101.9201) (width 0.2032) (layer "F.Cu") (net 5) (tstamp ad51b439-098c-4e18-ae1f-9d44e116b8f7))
|
||||
(via (at 147.3835 101.9201) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 5) (tstamp 434f1740-e8ea-48aa-819a-e8f0c67929c4))
|
||||
(via (at 145.4785 101.7677) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 5) (tstamp 6ba8a963-4e52-4da9-b129-37389306d641))
|
||||
(segment (start 145.4277 101.7677) (end 145.0761 101.4161) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 10257638-748f-4792-830d-716a1c0db7ff))
|
||||
(segment (start 145.0761 101.1601) (end 145.0761 101.4161) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 365cff8c-a479-4d79-b362-fdfac89711c6))
|
||||
(segment (start 150.2029 104.1807) (end 147.9423 101.9201) (width 0.2032) (layer "B.Cu") (net 5) (tstamp 90ce1c88-363b-45a2-919d-8827646fa909))
|
||||
(segment (start 145.4785 101.7677) (end 145.4277 101.7677) (width 0.2032) (layer "B.Cu") (net 5) (tstamp be3923fc-ad03-412b-bb5d-3fdd829c673e))
|
||||
(segment (start 147.9423 101.9201) (end 147.3835 101.9201) (width 0.2032) (layer "B.Cu") (net 5) (tstamp d182f9f8-e6a8-4202-9825-0d3dc441d54e))
|
||||
(segment (start 153.7255 106.22845) (end 151.67775 104.1807) (width 0.2032) (layer "B.Cu") (net 5) (tstamp e273d4e7-8cf7-453c-9576-254ffc1b9a69))
|
||||
(segment (start 151.67775 104.1807) (end 150.2029 104.1807) (width 0.2032) (layer "B.Cu") (net 5) (tstamp f428be95-0b2d-4a60-bceb-9e05112c3631))
|
||||
(segment (start 153.7255 108.9961) (end 153.7255 106.22845) (width 0.2032) (layer "B.Cu") (net 5) (tstamp f706a32a-34b2-481f-abbc-a90a4713812a))
|
||||
(segment (start 152.2255 106.978) (end 147.9176 102.6701) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 3eea729f-d81e-4602-924f-df00dc9fa656))
|
||||
(segment (start 152.2255 108.9961) (end 152.2255 106.978) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 5e249130-5691-4735-95bd-6a35e7230671))
|
||||
(segment (start 147.9176 102.6701) (end 146.0861 102.6701) (width 0.2032) (layer "B.Cu") (net 6) (tstamp 6a7b5cae-5706-4ae7-90cd-85b744bf9818))
|
||||
(segment (start 151.71585 107.21435) (end 151.71585 104.90625) (width 0.2032) (layer "F.Cu") (net 7) (tstamp 5cd87d85-df22-4c10-9e4e-723432382705))
|
||||
(segment (start 151.71585 104.90625) (end 150.4823 103.6727) (width 0.2032) (layer "F.Cu") (net 7) (tstamp 9e5e5b3d-da91-43f7-a8e1-1798b10f31c4))
|
||||
(via (at 150.4823 103.6727) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 7) (tstamp a9964fed-7444-442b-82cc-b749621619ca))
|
||||
(via (at 151.71585 107.21435) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 7) (tstamp c2434c2f-d941-4c49-8079-f193e7b68270))
|
||||
(segment (start 151.7255 108.9961) (end 151.7255 107.224) (width 0.2032) (layer "B.Cu") (net 7) (tstamp 8ae15dfd-83d6-4de0-b635-cf161fade6d8))
|
||||
(segment (start 147.9797 101.1701) (end 146.0861 101.1701) (width 0.2032) (layer "B.Cu") (net 7) (tstamp 9502ea06-b6dc-4669-9f41-6d0a72043887))
|
||||
(segment (start 151.7255 107.224) (end 151.71585 107.21435) (width 0.2032) (layer "B.Cu") (net 7) (tstamp a3a7ea90-729d-4167-a73a-5b7df6440f1d))
|
||||
(segment (start 150.4823 103.6727) (end 147.9797 101.1701) (width 0.2032) (layer "B.Cu") (net 7) (tstamp d8832711-350c-4ec6-a360-bb9e4c599453))
|
||||
(segment (start 143.0147 101.3423) (end 143.5989 101.9265) (width 0.3048) (layer "F.Cu") (net 8) (tstamp 11b50766-7a82-4010-9094-79ac57ff803a))
|
||||
(segment (start 143.5989 101.9265) (end 143.5989 103.1901) (width 0.3048) (layer "F.Cu") (net 8) (tstamp a307a9c7-a8ef-452f-a518-570df34d3971))
|
||||
(via (at 143.0147 101.3423) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 8) (tstamp 4555beef-afd0-4a07-a374-49fd7a56b2b2))
|
||||
(via (at 143.5989 103.1901) (size 0.508) (drill 0.254) (layers "F.Cu" "B.Cu") (net 8) (tstamp e4527f25-252e-4b65-948d-69c2f9252889))
|
||||
(segment (start 143.6243 100.5739) (end 144.2593 100.5739) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 0255fcc1-949a-4f3e-9303-3ea178273985))
|
||||
(segment (start 144.5661 100.86405) (end 144.557775 100.872375) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 0430d002-15bd-4a42-b0f9-df13695fcd41))
|
||||
(segment (start 146.0861 102.1701) (end 146.0861 101.6701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 311f6061-4902-4cbc-adea-c404d4acbf4f))
|
||||
(segment (start 144.2593 100.5739) (end 144.557775 100.872375) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 3cb471ac-4528-43b2-8cc2-c3ed9505edbb))
|
||||
(segment (start 142.4051 100.5739) (end 142.4051 100.7327) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 4a55c467-28b2-400a-bb25-411d525e0c41))
|
||||
(segment (start 146.0861 102.1701) (end 145.7586 102.1701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 57534e6f-4afa-4ff4-8fb8-efd13eca414d))
|
||||
(segment (start 144.5661 101.1701) (end 144.5661 100.86405) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 5db439c0-d3e7-4734-b78a-7d0e5bb5ff74))
|
||||
(segment (start 144.5661 101.6701) (end 144.5661 101.1701) (width 0.2032) (layer "B.Cu") (net 8) (tstamp 7ebfbee5-a62a-4d13-aa04-b904378145cd))
|
||||
(segment (start 142.4051 100.5739) (end 143.6243 100.5739) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 81233f61-eb56-41e1-aff7-bb28c6de0f43))
|
||||
(segment (start 145.13565 100.2945) (end 144.5661 100.86405) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 88b53bf2-a9d1-436f-9e73-361984ffadfd))
|
||||
(segment (start 145.6784 102.2503) (end 145.2278 102.2503) (width 0.1524) (layer "B.Cu") (net 8) (tstamp 90b3147c-c625-4f91-99f2-b3e2525c4b58))
|
||||
(segment (start 155.2255 108.9961) (end 155.2255 106.631737) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 99b20163-86e6-4035-8ae8-2076cd6324d5))
|
||||
(segment (start 155.2255 106.631737) (end 148.888263 100.2945) (width 0.3048) (layer "B.Cu") (net 8) (tstamp 9a895394-1736-428b-8941-d281f03cb5c1))
|
||||
(segment (start 144.5661 101.6701) (end 144.764388 101.6701) (width 0.1524) (layer "B.Cu") (net 8) (tstamp a3e3db84-e7c7-4654-839f-76d04cc0c896))
|
||||
(segment (start 144.9947 102.0172) (end 144.9947 101.900413) (width 0.1524) (layer "B.Cu") (net 8) (tstamp a4d1b77a-1e80-4648-9ae9-519383b53778))
|
||||
(segment (start 142.4051 100.7327) (end 143.0147 101.3423) (width 0.3048) (layer "B.Cu") (net 8) (tstamp a9338404-2317-4d4a-8561-2fc099b9516a))
|
||||
(segment (start 143.5989 104.1807) (end 143.5989 103.1901) (width 0.3048) (layer "B.Cu") (net 8) (tstamp bece63a7-3dcb-4c76-846e-10153f6e0bc1))
|
||||
(segment (start 144.764388 101.6701) (end 144.9947 101.900413) (width 0.1524) (layer "B.Cu") (net 8) (tstamp beeed655-48b9-475b-8276-e75e9ceba0c9))
|
||||
(segment (start 143.3195 104.4601) (end 143.5989 104.1807) (width 0.3048) (layer "B.Cu") (net 8) (tstamp e5fe01a0-2862-474d-bb27-d55a88f6ecb0))
|
||||
(segment (start 145.7586 102.1701) (end 145.6784 102.2503) (width 0.1524) (layer "B.Cu") (net 8) (tstamp e87db6bb-555e-4674-ad0d-38786a05b91b))
|
||||
(segment (start 145.2278 102.2503) (end 144.9947 102.0172) (width 0.1524) (layer "B.Cu") (net 8) (tstamp ec19ba45-9ebe-4ac5-aa32-4f3cb5d1c05c))
|
||||
(segment (start 148.888263 100.2945) (end 145.13565 100.2945) (width 0.3048) (layer "B.Cu") (net 8) (tstamp efab3462-3997-4e87-83fd-171e8d73a0ec))
|
||||
|
||||
)
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 39,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"ratsnest_display_mode": 0,
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": true,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"meta": {
|
||||
"filename": "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
|
@ -0,0 +1,527 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.049999999999999996,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.09999999999999999,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"silk_line_width": 0.12,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"45_degree_only": false,
|
||||
"min_clearance": 0.508
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [
|
||||
"copper_edge_clearance|151052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|6a847b13-3d48-4df7-8dd7-d515f51aacbf",
|
||||
"copper_edge_clearance|151552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|496964dd-0d25-423f-9576-ddcd7d92b9c0",
|
||||
"copper_edge_clearance|152052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|b54a21f9-d0ee-47bd-8a33-6d2ccb2f1964",
|
||||
"copper_edge_clearance|152552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|edf03a5b-8be1-48f8-8f16-4719d937182d",
|
||||
"copper_edge_clearance|153052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|16a60cfb-4140-483f-9675-22643c201dcd",
|
||||
"copper_edge_clearance|153552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|44970b45-f7b0-47cc-a114-209df0456d8f",
|
||||
"copper_edge_clearance|154052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|1ad63a96-1ef2-463e-9ea7-81ba46599172",
|
||||
"copper_edge_clearance|154552000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|4a8a2808-da08-4211-a839-b545ca46843d",
|
||||
"copper_edge_clearance|155052000|110246100|ae418f09-9594-49fa-ba14-c5ebf3097fc7|b2e7f160-81a2-4f3a-9cac-d6cba543336c",
|
||||
"silk_over_copper|146240500|100142100|b5d214ca-8d2c-4892-a145-ebcdf525979d|a8fc3609-a41b-4706-8233-14786995acaa",
|
||||
"silk_over_copper|155714700|105095100|a6bc6301-abbd-4acf-a77d-1f4e4d107e79|09b40b31-a75f-48c5-94ff-dac04c6dfaf8"
|
||||
],
|
||||
"meta": {
|
||||
"filename": "board_design_settings.json",
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"copper_edge_clearance": "error",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint_type_mismatch": "error",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "error",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zone_has_empty_net": "error",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"allow_blind_buried_vias": false,
|
||||
"allow_microvias": false,
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.127,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.024999999999999998,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.7999999999999999,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.254,
|
||||
"min_track_width": 0.127,
|
||||
"min_via_annular_width": 0.049999999999999996,
|
||||
"min_via_diameter": 0.39999999999999997,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 5,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0
|
||||
],
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false,
|
||||
"zones_use_no_outline": true
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_label_syntax": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "OSO-SWAB-B1-00 Sensor Watch Accelerometer.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.127,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6
|
||||
},
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "gnd",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2032,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6
|
||||
},
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.127,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "power",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2032,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"drawing": {
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"ngspice": {
|
||||
"fix_include_paths": true,
|
||||
"fix_passive_vals": false,
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"model_mode": 0,
|
||||
"workbook_filename": ""
|
||||
},
|
||||
"page_layout_descr_file": "empty.kicad_wks",
|
||||
"plot_directory": "",
|
||||
"spice_adjust_passive_values": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"677683ff-9f49-4367-8af2-04a801740db6",
|
||||
""
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,15 @@
|
|||
(footprint "B1,27" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 0)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(fp_text reference "REF**" (at -0.635 -1.016) (layer "F.SilkS")
|
||||
(effects (font (size 1.143 1.143) (thickness 0.127)) (justify left bottom))
|
||||
(tstamp 66611b0e-db6e-4021-9427-c32ecc053115)
|
||||
)
|
||||
(fp_text value ">VALUE" (at -0.635 0.762) (layer "F.Fab")
|
||||
(effects (font (size 0.023368 0.023368) (thickness 0.002032)) (justify left bottom))
|
||||
(tstamp 4ac60ae9-6f70-4bce-8da5-6eac3cd3a3ad)
|
||||
)
|
||||
(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) (tstamp b8f939e4-9cdb-4994-993d-3ae41bb30177))
|
||||
)
|
|
@ -0,0 +1,42 @@
|
|||
(footprint "FH19C9S05SH10-FFC" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 0)
|
||||
(descr "<b>FH19C-9S-0.5SH(10)-1</b><br>\n")
|
||||
(fp_text reference "REF**" (at 0 0) (layer "F.SilkS")
|
||||
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||
(tstamp 2891e198-646d-4022-ba59-cc504d2b7d16)
|
||||
)
|
||||
(fp_text value "" (at 0 0) (layer "F.Fab")
|
||||
(effects (font (size 1.27 1.27) (thickness 0.15)))
|
||||
(tstamp cb35e01a-ade6-4e76-8860-9691b680c03d)
|
||||
)
|
||||
(fp_poly (pts
|
||||
(xy 2.56543 3.556)
|
||||
(xy -2.56537 3.556)
|
||||
(xy -2.56643 0.898)
|
||||
(xy 2.56437 0.898)
|
||||
) (layer "B.Mask") (width 0) (fill solid) (tstamp 2b3c01e4-c750-4f56-8673-86cd61068635))
|
||||
(fp_line (start -2.4892 0) (end -2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp 593436ec-2ee2-4f89-a482-ad9d710ea79d))
|
||||
(fp_line (start 2.4892 0) (end 2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp 757ab00f-2565-4955-8ca5-247d2ab4a459))
|
||||
(fp_line (start -2.3392 3.5) (end 2.3392 3.5) (layer "Edge.Cuts") (width 0.05) (tstamp be6a643e-0f3d-406b-82ce-bc5dd821e563))
|
||||
(fp_arc (start -2.3392 3.5) (mid -2.445266 3.456066) (end -2.4892 3.35) (layer "Edge.Cuts") (width 0.05) (tstamp eeb7dd92-dd48-45ec-b09f-f99710ea3b88))
|
||||
(fp_arc (start 2.4892 3.35) (mid 2.445266 3.456066) (end 2.3392 3.5) (layer "Edge.Cuts") (width 0.05) (tstamp eecbbc5b-a539-4c7c-8789-2616156ab52b))
|
||||
(pad "1" smd rect (at 2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 2b902acc-4a08-4047-ad60-bbf1eeaab6ab))
|
||||
(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) (tstamp d8e62cc7-7124-4f2e-889d-3746b3d86a64))
|
||||
(pad "3" smd rect (at 1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp f999fa66-5f95-4c6d-9b5b-e8836c9dc89d))
|
||||
(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) (tstamp ab03249d-815c-4b6a-af6f-cad8e8308166))
|
||||
(pad "5" smd rect (at 0 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp badef670-3ddf-4b49-83a7-fe6eb4b07cad))
|
||||
(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) (tstamp 102be87f-c42b-4e09-b634-d2882c35f5ae))
|
||||
(pad "7" smd rect (at -1 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 092cbced-a774-4b39-a3d1-c6d31915fb62))
|
||||
(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) (tstamp 1b3a5bc0-e9f9-47de-b2f0-4672614e470a))
|
||||
(pad "9" smd rect (at -2 2.25 90) (size 2.5 0.347) (layers "B.Cu" "B.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp b0acd8bd-47e9-4935-a884-665ee78af58f))
|
||||
)
|
|
@ -0,0 +1,54 @@
|
|||
(footprint "LGA12R50P4X4_200X200X70" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 0)
|
||||
(fp_text reference "REF**" (at -1.50225 -1.50225) (layer "F.SilkS")
|
||||
(effects (font (size 0.561674 0.561674) (thickness 0.048841)) (justify left bottom))
|
||||
(tstamp a841a941-dbd4-406e-9e83-16f988577ed7)
|
||||
)
|
||||
(fp_text value ">VALUE" (at -1.50114 2.001518) (layer "F.Fab")
|
||||
(effects (font (size 0.561257 0.561257) (thickness 0.048805)) (justify left bottom))
|
||||
(tstamp 0a9955a0-6068-4d38-b05e-1ba1984749d1)
|
||||
)
|
||||
(fp_line (start 0.555 -1.05) (end 1.05 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 1ec22d83-cad4-4dee-9f07-ac20256d34bb))
|
||||
(fp_line (start 0.555 1.05) (end 1.05 1.05) (layer "F.SilkS") (width 0.127) (tstamp 2ab2f09e-0c2e-40e1-8cad-8618b2964772))
|
||||
(fp_line (start 1.05 1.05) (end 1.05 0.555) (layer "F.SilkS") (width 0.127) (tstamp 691adb00-c7cf-42cd-b3b3-3cb402f71864))
|
||||
(fp_line (start -1.05 -0.555) (end -1.05 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 693e0e56-7ca2-4e3c-943f-7d93d816dd88))
|
||||
(fp_line (start -1.05 -1.05) (end -0.555 -1.05) (layer "F.SilkS") (width 0.127) (tstamp 6dd9b638-7d83-48ad-9c0b-d0a3b14ff194))
|
||||
(fp_line (start 1.05 -1.05) (end 1.05 -0.555) (layer "F.SilkS") (width 0.127) (tstamp cfdfed39-3585-4f3d-af2c-df735f17f29f))
|
||||
(fp_line (start -1.05 0.555) (end -1.05 1.05) (layer "F.SilkS") (width 0.127) (tstamp d5677caf-5ab2-407c-a936-e4226c17744c))
|
||||
(fp_line (start -1.05 1.05) (end -0.555 1.05) (layer "F.SilkS") (width 0.127) (tstamp f1e92131-893d-407c-85ed-04a3d79dc8bc))
|
||||
(fp_circle (center -1.5 -0.75) (end -1.45 -0.75) (layer "F.SilkS") (width 0.1) (fill none) (tstamp 6e7bb868-6df4-43cc-ae2f-1d2b706e4c2e))
|
||||
(fp_line (start 1.25 -1.25) (end 1.25 1.25) (layer "F.CrtYd") (width 0.05) (tstamp 47f30fc1-7ed7-4645-8836-972c17bb4fe5))
|
||||
(fp_line (start -1.25 1.25) (end -1.25 -1.25) (layer "F.CrtYd") (width 0.05) (tstamp 4c1ed0d1-05e7-40bc-b7c8-845b3478b8d5))
|
||||
(fp_line (start 1.25 1.25) (end -1.25 1.25) (layer "F.CrtYd") (width 0.05) (tstamp 593de62e-58e0-4efc-8ba1-b886cd08985c))
|
||||
(fp_line (start -1.25 -1.25) (end 1.25 -1.25) (layer "F.CrtYd") (width 0.05) (tstamp 75cee19c-8883-4eb2-bb54-93d3242790c4))
|
||||
(fp_line (start 1 -1) (end 1 1) (layer "F.Fab") (width 0.127) (tstamp 0e31b15a-0bed-4c02-a998-422f761d6f21))
|
||||
(fp_line (start 1 1) (end -1 1) (layer "F.Fab") (width 0.127) (tstamp 25e98454-7b51-4256-99ce-d71274a09ddd))
|
||||
(fp_line (start -1 1) (end -1 -1) (layer "F.Fab") (width 0.127) (tstamp 9455eb49-e46c-4cc1-931f-245a8cf4484a))
|
||||
(fp_line (start -1 -1) (end 1 -1) (layer "F.Fab") (width 0.127) (tstamp 96a4c6a7-70a8-4dc8-851d-90638be2de9c))
|
||||
(fp_circle (center -0.75 -0.75) (end -0.7 -0.75) (layer "F.Fab") (width 0.1) (fill none) (tstamp 3ca22245-934d-45a7-84cc-c2d904109998))
|
||||
(pad "1" smd rect (at -0.76 -0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 9b76f23f-a839-4e38-ab2f-47fe312a5451))
|
||||
(pad "2" smd rect (at -0.76 -0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 084df340-c833-4415-b5ea-ddf2da7aeab1))
|
||||
(pad "3" smd rect (at -0.76 0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 56e68fb3-7611-43b1-852f-2d9d710a10d4))
|
||||
(pad "4" smd rect (at -0.76 0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp e1e62aad-3a36-476f-b704-a4b4240137d2))
|
||||
(pad "5" smd rect (at -0.25 0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp cd41e53a-0c76-4c5f-800c-753fe980f311))
|
||||
(pad "6" smd rect (at 0.25 0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 8d08899e-801e-464e-a053-80ece5d40773))
|
||||
(pad "7" smd rect (at 0.76 0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 124b0827-61a2-4ca5-9e46-df5984bdff25))
|
||||
(pad "8" smd rect (at 0.76 0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 4a93be6c-d59b-4ab5-b017-af8dd5c58e3a))
|
||||
(pad "9" smd rect (at 0.76 -0.25) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 0baa1d51-a8bc-4483-b400-80a9ff172160))
|
||||
(pad "10" smd rect (at 0.76 -0.75) (size 0.4 0.35) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 09311f64-fad0-424e-8eae-c2a2bd2cac0a))
|
||||
(pad "11" smd rect (at 0.25 -0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp 41f01f34-006e-48b6-a52b-6948fb66b57f))
|
||||
(pad "12" smd rect (at -0.25 -0.76) (size 0.35 0.4) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(solder_mask_margin 0.0635) (tstamp f87a7419-f9cb-4939-a776-f1a6ae037a85))
|
||||
)
|
|
@ -0,0 +1,38 @@
|
|||
(footprint "_0603MP" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 0)
|
||||
(descr "<b>0603 MicroPitch</b>")
|
||||
(fp_text reference "REF**" (at -0.9525 -0.635) (layer "F.SilkS")
|
||||
(effects (font (size 0.666496 0.666496) (thickness 0.146304)) (justify left bottom))
|
||||
(tstamp 08ea7653-fcf2-4de6-bc2d-71c2559866c5)
|
||||
)
|
||||
(fp_text value ">VALUE" (at -0.9525 0.9525) (layer "F.Fab")
|
||||
(effects (font (size 0.36576 0.36576) (thickness 0.04064)) (justify left bottom))
|
||||
(tstamp c6f30152-8d59-4f78-bba8-2d4dbdc2be46)
|
||||
)
|
||||
(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) (fill solid) (tstamp e4d4e5f7-6687-4207-9525-f44fa6947d43))
|
||||
(fp_line (start 0 -0.254) (end 0 0.254) (layer "F.SilkS") (width 0.2032) (tstamp 8494f3d6-e422-4ed3-afab-572a517aba7f))
|
||||
(fp_line (start -0.432 0.306) (end 0.432 0.306) (layer "F.Fab") (width 0.1016) (tstamp 3a69b14b-04ad-4165-ab2f-4ad1c270b812))
|
||||
(fp_line (start 0.432 -0.306) (end -0.432 -0.306) (layer "F.Fab") (width 0.1016) (tstamp 590cef58-c4cf-4e7a-ac89-6a7a7801e6c8))
|
||||
(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) (fill solid) (tstamp 2630aa28-dcfc-4f76-bf4f-eac1115a0083))
|
||||
(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) (fill solid) (tstamp 6d4a5dc7-5dd7-4742-b5e4-d512d0913c9b))
|
||||
(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) (tstamp 5ce1ec75-6b24-4360-8dcb-9033548b2be2))
|
||||
(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) (tstamp 77d09e3e-6f43-44cb-8866-ea235200f8dc))
|
||||
)
|
Binary file not shown.
|
@ -0,0 +1,5 @@
|
|||
(kicad_wks (version 20210606) (generator pl_editor)
|
||||
(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))
|
||||
)
|
|
@ -0,0 +1,3 @@
|
|||
(fp_lib_table
|
||||
(lib (name "OSO-MISC-21-021 Sensor Watch Motion II")(type "KiCad")(uri "$(KIPRJMOD)/OSO-SWAB-B1-00 Sensor Watch Accelerometer.pretty")(options "")(descr ""))
|
||||
)
|
|
@ -0,0 +1,3 @@
|
|||
(sym_lib_table
|
||||
(lib (name "OSO-MISC-21-021 Sensor Watch Motion II-eagle-import")(type "KiCad")(uri "${KIPRJMOD}/OSO-MISC-21-021 Sensor Watch Motion II-eagle-import.kicad_sym")(options "")(descr ""))
|
||||
)
|
2
PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore
vendored
Normal file
2
PCB/Sensor Boards/Q3Q-SWAB-A1-00 Temperature + Test Points + OPT3001/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
OPT3001DNPT/*
|
||||
|
|
@ -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
|
|
@ -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 "<b>FH19C-9S-0.5SH(10)-1</b><br>\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 "<b>0603 MicroPitch</b>")
|
||||
(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 "<b>0603 MicroPitch</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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))
|
||||
|
||||
)
|
|
@ -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 "<b>FH19C-9S-0.5SH(10)-1</b><br>\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 "<b>0603 MicroPitch</b>")
|
||||
(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 "<b>0603 MicroPitch</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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 "<b>TEST PAD</b>")
|
||||
(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))
|
||||
|
||||
)
|
|
@ -0,0 +1,16 @@
|
|||
(module B1,27 (layer F.Cu) (tedit 0)
|
||||
(descr "<b>TEST PAD</b>")
|
||||
(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))
|
||||
)
|
|
@ -0,0 +1,33 @@
|
|||
(module FH19C9S05SH10-FFC (layer F.Cu) (tedit 0)
|
||||
(descr "<b>FH19C-9S-0.5SH(10)-1</b><br>\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))
|
||||
)
|
|
@ -0,0 +1,19 @@
|
|||
(module _0603MP (layer F.Cu) (tedit 0)
|
||||
(descr "<b>0603 MicroPitch</b>")
|
||||
(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))
|
||||
)
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,3 @@
|
|||
EESchema-DOCLIB Version 2.0
|
||||
#
|
||||
#End Doc Library
|
|
@ -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
|
|
@ -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))
|
||||
)
|
|
@ -0,0 +1 @@
|
|||
0
|
|
@ -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 ""))
|
||||
)
|
|
@ -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 ""))
|
||||
)
|
2
make.mk
2
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 \
|
||||
|
|
|
@ -196,6 +196,7 @@ static void filesystem_cat(char *filename) {
|
|||
if (info.size > 0) {
|
||||
char *buf = malloc(info.size + 1);
|
||||
filesystem_read_file(filename, buf, info.size);
|
||||
buf[info.size] = '\0';
|
||||
printf("%s\n", buf);
|
||||
free(buf);
|
||||
} else {
|
||||
|
|
179
movement/lib/chirpy_tx/chirpy_tx.c
Normal file
179
movement/lib/chirpy_tx/chirpy_tx.c
Normal file
|
@ -0,0 +1,179 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Gabor L Ugray
|
||||
*
|
||||
* 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 <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "chirpy_tx.h"
|
||||
|
||||
static const uint32_t chirpy_min_freq = 2500;
|
||||
static const uint32_t cirpy_freq_step = 250;
|
||||
|
||||
// This many bytes are followed by a CRC and block separator
|
||||
// It's a multiple of 3 so no bits are wasted (a tone encodes 3 bits)
|
||||
// Last block can be shorter
|
||||
static const uint8_t chirpy_default_block_size = 15;
|
||||
|
||||
// The dedicated control tone. This is the highest tone index.
|
||||
static const uint8_t chirpy_control_tone = 8;
|
||||
|
||||
// Pre-computed tone periods. This is allocated and populated on-demand.
|
||||
static uint32_t *chirpy_tone_periods = NULL;
|
||||
|
||||
uint8_t chirpy_crc8(const uint8_t *addr, uint16_t len) {
|
||||
uint8_t crc = 0;
|
||||
for (uint16_t i = 0; i < len; i++)
|
||||
crc = chirpy_update_crc8(addr[i], crc);
|
||||
return crc;
|
||||
}
|
||||
|
||||
uint8_t chirpy_update_crc8(uint8_t next_byte, uint8_t crc) {
|
||||
for (uint8_t j = 0; j < 8; j++) {
|
||||
uint8_t mix = (crc ^ next_byte) & 0x01;
|
||||
crc >>= 1;
|
||||
if (mix)
|
||||
crc ^= 0x8C;
|
||||
next_byte >>= 1;
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
static void _chirpy_append_tone(chirpy_encoder_state_t *ces, uint8_t tone) {
|
||||
// This is BAD and should never happen. But if it does, we'd rather
|
||||
// create a corrupt transmission than corrupt memory #$^@
|
||||
if (ces->tone_count == CHIRPY_TONE_BUF_SIZE)
|
||||
return;
|
||||
ces->tone_buf[ces->tone_count] = tone;
|
||||
++ces->tone_count;
|
||||
}
|
||||
|
||||
void chirpy_init_encoder(chirpy_encoder_state_t *ces, chirpy_get_next_byte_t get_next_byte) {
|
||||
memset(ces, 0, sizeof(chirpy_encoder_state_t));
|
||||
ces->block_size = chirpy_default_block_size;
|
||||
ces->get_next_byte = get_next_byte;
|
||||
_chirpy_append_tone(ces, 8);
|
||||
_chirpy_append_tone(ces, 0);
|
||||
_chirpy_append_tone(ces, 8);
|
||||
_chirpy_append_tone(ces, 0);
|
||||
}
|
||||
|
||||
static uint8_t _chirpy_retrieve_next_tone(chirpy_encoder_state_t *ces) {
|
||||
if (ces->tone_pos == ces->tone_count)
|
||||
return 255;
|
||||
|
||||
uint8_t res = ces->tone_buf[ces->tone_pos];
|
||||
++ces->tone_pos;
|
||||
if (ces->tone_pos == ces->tone_count) {
|
||||
// End of buffer: reset buffer
|
||||
ces->tone_pos = 0;
|
||||
ces->tone_count = 0;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
static void _chirpy_encode_bits(chirpy_encoder_state_t *ces, uint8_t force_partial) {
|
||||
while (ces->bit_count > 0) {
|
||||
if (ces->bit_count < 3 && !force_partial) break;
|
||||
uint8_t tone = (uint8_t)(ces->bits >> 13);
|
||||
_chirpy_append_tone(ces, tone);
|
||||
if (ces->bit_count >= 3) {
|
||||
ces->bits <<= 3;
|
||||
ces->bit_count -= 3;
|
||||
} else {
|
||||
ces->bits = 0;
|
||||
ces->bit_count = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void _chirpy_finish_block(chirpy_encoder_state_t *ces) {
|
||||
_chirpy_append_tone(ces, chirpy_control_tone);
|
||||
ces->bits = ces->crc;
|
||||
ces->bits <<= 8;
|
||||
ces->bit_count = 8;
|
||||
_chirpy_encode_bits(ces, 1);
|
||||
ces->bit_count = 0;
|
||||
ces->crc = 0;
|
||||
ces->block_len = 0;
|
||||
_chirpy_append_tone(ces, chirpy_control_tone);
|
||||
}
|
||||
|
||||
static void _chirpy_finish_transmission(chirpy_encoder_state_t *ces) {
|
||||
_chirpy_append_tone(ces, chirpy_control_tone);
|
||||
_chirpy_append_tone(ces, chirpy_control_tone);
|
||||
}
|
||||
|
||||
uint8_t chirpy_get_next_tone(chirpy_encoder_state_t *ces) {
|
||||
// If there are tones left in the buffer, keep sending those
|
||||
if (ces->tone_pos < ces->tone_count)
|
||||
return _chirpy_retrieve_next_tone(ces);
|
||||
|
||||
// We know data is over: that means we've wrapped up transmission
|
||||
// Just drain tone buffer, and then keep sendig EOB
|
||||
if (ces->get_next_byte == 0)
|
||||
return _chirpy_retrieve_next_tone(ces);
|
||||
|
||||
// Fetch next byte
|
||||
uint8_t next_byte;
|
||||
uint8_t got_more = ces->get_next_byte(&next_byte);
|
||||
|
||||
// Data over: write CRC if we sent a partial buffer; send end signal
|
||||
if (got_more == 0) {
|
||||
ces->get_next_byte = 0;
|
||||
if (ces->bit_count > 0) _chirpy_encode_bits(ces, 1);
|
||||
if (ces->block_len > 0) _chirpy_finish_block(ces);
|
||||
_chirpy_finish_transmission(ces);
|
||||
return _chirpy_retrieve_next_tone(ces);
|
||||
}
|
||||
|
||||
// Got more data: add to bits; convert
|
||||
uint16_t msk = next_byte;
|
||||
msk <<= (8 - ces->bit_count);
|
||||
ces->bits |= msk;
|
||||
ces->bit_count += 8;
|
||||
_chirpy_encode_bits(ces, 0);
|
||||
++ces->block_len;
|
||||
ces->crc = chirpy_update_crc8(next_byte, ces->crc);
|
||||
if (ces->block_len == ces->block_size)
|
||||
_chirpy_finish_block(ces);
|
||||
|
||||
return _chirpy_retrieve_next_tone(ces);
|
||||
}
|
||||
|
||||
uint16_t chirpy_get_tone_period(uint8_t tone) {
|
||||
// Create pre-computed tone periods array on first use
|
||||
if (chirpy_tone_periods == NULL) {
|
||||
chirpy_tone_periods = malloc((chirpy_control_tone + 1) * sizeof(uint32_t));
|
||||
for (uint8_t i = 0; i < chirpy_control_tone + 1; ++i) {
|
||||
uint32_t freq = chirpy_min_freq + i * cirpy_freq_step;
|
||||
uint16_t period = 1000000 / freq;
|
||||
chirpy_tone_periods[i] = period;
|
||||
}
|
||||
}
|
||||
// Return pre-computed value, but be paranoid about indexing into array
|
||||
if (tone > chirpy_control_tone)
|
||||
tone = chirpy_control_tone;
|
||||
return chirpy_tone_periods[tone];
|
||||
}
|
98
movement/lib/chirpy_tx/chirpy_tx.h
Normal file
98
movement/lib/chirpy_tx/chirpy_tx.h
Normal file
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Gabor L Ugray
|
||||
*
|
||||
* 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 CHIRPY_TX_H
|
||||
#define CHIRPY_TX_H
|
||||
|
||||
/** @brief Calculates the CRC of a byte sequence.
|
||||
*/
|
||||
uint8_t chirpy_crc8(const uint8_t *addr, uint16_t len);
|
||||
|
||||
/** @brief Updates a CRC value with the next byte of input.
|
||||
*/
|
||||
uint8_t chirpy_update_crc8(uint8_t next_byte, uint8_t crc);
|
||||
|
||||
/** @brief Function to return next byte to be encoded.
|
||||
* @param next_byte Pointer where implementor must write next byte (if available).
|
||||
* @return 1 if there is a next byte, or 0 if no more data to encode.
|
||||
*/
|
||||
typedef uint8_t (*chirpy_get_next_byte_t)(uint8_t *next_byte);
|
||||
|
||||
#define CHIRPY_TONE_BUF_SIZE 16
|
||||
|
||||
// Holds state used by the encoder. Do not manipulate directly.
|
||||
typedef struct {
|
||||
uint8_t tone_buf[CHIRPY_TONE_BUF_SIZE];
|
||||
uint8_t tone_pos;
|
||||
uint8_t tone_count;
|
||||
uint8_t block_len;
|
||||
uint8_t block_size;
|
||||
uint8_t crc;
|
||||
uint16_t bits;
|
||||
uint8_t bit_count;
|
||||
chirpy_get_next_byte_t get_next_byte;
|
||||
} chirpy_encoder_state_t;
|
||||
|
||||
/** @brief Iniitializes the encoder state to be used during the transmission.
|
||||
* @param ces Pointer to encoder state object to be initialized.
|
||||
* @param get_next_byte Pointer to function that the encoder will call to fetch data byte by byte.
|
||||
*/
|
||||
void chirpy_init_encoder(chirpy_encoder_state_t *ces, chirpy_get_next_byte_t get_next_byte);
|
||||
|
||||
/** @brief Returns the next tone to be transmitted.
|
||||
* @details This function will call the get_next_byte function stored in the encoder state to
|
||||
* retrieve the next byte to be transmitted as needed. As a single byte is encoded as several tones,
|
||||
* and because the transmission also includes periodic CRC values, not every call to this function
|
||||
* will result in a callback for the next data byte.
|
||||
* @param ced Pointer to the encoder state object.
|
||||
* @return A tone index from 0 to N (where N is the largest tone index), or 255 if the transmission is over.
|
||||
*/
|
||||
uint8_t chirpy_get_next_tone(chirpy_encoder_state_t *ces);
|
||||
|
||||
/** @brief Returns the period value for buzzing out a tone.
|
||||
* @param tone The tone index, 0 thru 8.
|
||||
* @return The period for the tone's frequency, i.e., 1_000_000 / freq.
|
||||
*/
|
||||
uint16_t chirpy_get_tone_period(uint8_t tone);
|
||||
|
||||
/** @brief Typedef for a tick handler function.
|
||||
*/
|
||||
typedef void (*chirpy_tick_fun_t)(void *context);
|
||||
|
||||
/** @brief Creature-comfort struct for use in your chirping code.
|
||||
* @details The idea is to handle a tick that happens 64 times per second at the outermost level.
|
||||
* To get to the desired ~20 tones per second, increment a counter and call the actual
|
||||
* transmission ticker when tick_counter reaches tick_compare, with a compare value of 3.
|
||||
* seq_pos is for use by the transmission function to keep track of where it is in the data.
|
||||
* The current transmission function is stored in tick_fun. You can have multiple phases
|
||||
* by switching to a different function. E.g., intro countdown first, followed by data chirping.
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t tick_count;
|
||||
uint8_t tick_compare;
|
||||
uint16_t seq_pos;
|
||||
chirpy_tick_fun_t tick_fun;
|
||||
} chirpy_tick_state_t;
|
||||
|
||||
#endif
|
160
movement/lib/chirpy_tx/test/test_main.c
Normal file
160
movement/lib/chirpy_tx/test/test_main.c
Normal file
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Gabor L Ugray
|
||||
*
|
||||
* 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 <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "../src/lib/chirpy_tx.h"
|
||||
#include "unity.h"
|
||||
|
||||
|
||||
void setUp(void) {
|
||||
}
|
||||
|
||||
void tearDown(void) {
|
||||
}
|
||||
|
||||
const char *crc_test_str0 = "";
|
||||
const char *crc_test_str1 = "h";
|
||||
const char *crc_test_str2 = "he";
|
||||
const char *crc_test_str3 = "hen";
|
||||
const char *crc_test_str4 = "henl";
|
||||
const char *crc_test_str5 = "henlO";
|
||||
|
||||
#define CRC_VAL_COUNT 5
|
||||
const uint8_t crc_vals[] = {167, 118, 95, 92, 127};
|
||||
|
||||
void test_crc8() {
|
||||
TEST_ASSERT_EQUAL_UINT8(0, chirpy_crc8((const uint8_t *)crc_test_str0, 0));
|
||||
TEST_ASSERT_EQUAL_UINT8(167, chirpy_crc8((const uint8_t *)crc_test_str1, strlen(crc_test_str1)));
|
||||
TEST_ASSERT_EQUAL_UINT8(118, chirpy_crc8((const uint8_t *)crc_test_str2, strlen(crc_test_str2)));
|
||||
TEST_ASSERT_EQUAL_UINT8(95, chirpy_crc8((const uint8_t *)crc_test_str3, strlen(crc_test_str3)));
|
||||
TEST_ASSERT_EQUAL_UINT8(92, chirpy_crc8((const uint8_t *)crc_test_str4, strlen(crc_test_str4)));
|
||||
TEST_ASSERT_EQUAL_UINT8(127, chirpy_crc8((const uint8_t *)crc_test_str5, strlen(crc_test_str5)));
|
||||
|
||||
uint8_t crc = 0;
|
||||
for (uint16_t i = 0; i < CRC_VAL_COUNT; ++i) {
|
||||
uint8_t next_byte = crc_test_str5[i];
|
||||
crc = chirpy_update_crc8(next_byte, crc);
|
||||
TEST_ASSERT_EQUAL_UINT8(crc_vals[i], crc);
|
||||
}
|
||||
|
||||
crc = chirpy_update_crc8(0, 0);
|
||||
TEST_ASSERT_EQUAL(0, crc);
|
||||
|
||||
crc = chirpy_update_crc8(0x4f, 0);
|
||||
TEST_ASSERT_EQUAL(7, crc);
|
||||
}
|
||||
|
||||
const uint16_t data_len_01 = 0;
|
||||
const uint8_t data_01[] = {};
|
||||
const uint16_t tones_len_01 = 6;
|
||||
const uint8_t tones_01[] = {8, 0, 8, 0, 8, 8};
|
||||
|
||||
const uint16_t data_len_02 = 1;
|
||||
const uint8_t data_02[] = {0};
|
||||
const uint16_t tones_len_02 = 14;
|
||||
const uint8_t tones_02[] = {8, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0, 8, 8, 8};
|
||||
|
||||
const uint16_t data_len_03 = 1;
|
||||
const uint8_t data_03[] = {0x68};
|
||||
const uint16_t tones_len_03 = 14;
|
||||
const uint8_t tones_03[] = {8, 0, 8, 0, 3, 2, 0, 8, 5, 1, 6, 8, 8, 8};
|
||||
|
||||
const uint16_t data_len_04 = 3;
|
||||
const uint8_t data_04[] = {0x68, 0x65, 0x6e};
|
||||
const uint16_t tones_len_04 = 19;
|
||||
const uint8_t tones_04[] = {8, 0, 8, 0, 3, 2, 0, 6, 2, 5, 5, 6, 8, 2, 7, 6, 8, 8, 8};
|
||||
|
||||
const uint16_t data_len_05 = 4;
|
||||
const uint8_t data_05[] = {0x68, 0x65, 0x6e, 0x4f};
|
||||
const uint16_t tones_len_05 = 27;
|
||||
const uint8_t tones_05[] = {
|
||||
8, 0, 8, 0, 3, 2, 0, 6, 2, 5, 5, 6, 8, 2, 7, 6, 8,
|
||||
2, 3, 6, 8, 0, 1, 6, 8, 8, 8};
|
||||
|
||||
uint8_t curr_data_pos;
|
||||
uint8_t curr_data_len;
|
||||
const uint8_t *curr_data;
|
||||
|
||||
uint8_t get_next_byte(uint8_t *next_byte) {
|
||||
if (curr_data_pos < curr_data_len) {
|
||||
*next_byte = curr_data[curr_data_pos];
|
||||
++curr_data_pos;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void test_encoder_one(const uint8_t *data, uint16_t data_len, const uint8_t *tones, uint16_t tones_len) {
|
||||
curr_data = data;
|
||||
curr_data_len = data_len;
|
||||
curr_data_pos = 0;
|
||||
chirpy_encoder_state_t ces;
|
||||
chirpy_init_encoder(&ces, get_next_byte);
|
||||
ces.block_size = 3;
|
||||
|
||||
uint8_t got_tones[2048] = {0};
|
||||
uint16_t got_tone_pos = 0;
|
||||
while (got_tone_pos < 2048) {
|
||||
uint8_t tone = chirpy_get_next_tone(&ces);
|
||||
got_tones[got_tone_pos] = tone;
|
||||
if (tone == 255) break;
|
||||
++got_tone_pos;
|
||||
}
|
||||
char buf1[65536];
|
||||
char bufx[256];
|
||||
memset(buf1, 0, 65536);
|
||||
for (uint16_t i = 0; i < got_tone_pos; ++i) {
|
||||
if (i == 0)
|
||||
sprintf(bufx, "%d", got_tones[i]);
|
||||
else
|
||||
sprintf(bufx, ", %d", got_tones[i]);
|
||||
strcat(buf1, bufx);
|
||||
}
|
||||
TEST_MESSAGE(buf1);
|
||||
TEST_ASSERT_EQUAL(tones_len, got_tone_pos);
|
||||
uint16_t smaller_len = tones_len < got_tone_pos ? tones_len : got_tone_pos;
|
||||
TEST_ASSERT_EQUAL_UINT8_ARRAY(tones, got_tones, smaller_len);
|
||||
}
|
||||
|
||||
void test_encoder() {
|
||||
TEST_MESSAGE("Testing encoder with dataset 01");
|
||||
test_encoder_one(data_01, data_len_01, tones_01, tones_len_01);
|
||||
TEST_MESSAGE("Testing encoder with dataset 02");
|
||||
test_encoder_one(data_02, data_len_02, tones_02, tones_len_02);
|
||||
TEST_MESSAGE("Testing encoder with dataset 03");
|
||||
test_encoder_one(data_03, data_len_03, tones_03, tones_len_03);
|
||||
TEST_MESSAGE("Testing encoder with dataset 04");
|
||||
test_encoder_one(data_04, data_len_04, tones_04, tones_len_04);
|
||||
TEST_MESSAGE("Testing encoder with dataset 05");
|
||||
test_encoder_one(data_05, data_len_05, tones_05, tones_len_05);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
UNITY_BEGIN();
|
||||
RUN_TEST(test_crc8);
|
||||
RUN_TEST(test_encoder);
|
||||
return UNITY_END();
|
||||
}
|
2466
movement/lib/chirpy_tx/test/unity.c
Normal file
2466
movement/lib/chirpy_tx/test/unity.c
Normal file
File diff suppressed because it is too large
Load diff
687
movement/lib/chirpy_tx/test/unity.h
Normal file
687
movement/lib/chirpy_tx/test/unity.h
Normal file
|
@ -0,0 +1,687 @@
|
|||
/* ==========================================
|
||||
Unity Project - A Test Framework for C
|
||||
Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams
|
||||
[Released under MIT License. Please refer to license.txt for details]
|
||||
========================================== */
|
||||
|
||||
#ifndef UNITY_FRAMEWORK_H
|
||||
#define UNITY_FRAMEWORK_H
|
||||
#define UNITY
|
||||
|
||||
#define UNITY_VERSION_MAJOR 2
|
||||
#define UNITY_VERSION_MINOR 5
|
||||
#define UNITY_VERSION_BUILD 4
|
||||
#define UNITY_VERSION ((UNITY_VERSION_MAJOR << 16) | (UNITY_VERSION_MINOR << 8) | UNITY_VERSION_BUILD)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "unity_internals.h"
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Test Setup / Teardown
|
||||
*-------------------------------------------------------*/
|
||||
|
||||
/* These functions are intended to be called before and after each test.
|
||||
* If using unity directly, these will need to be provided for each test
|
||||
* executable built. If you are using the test runner generator and/or
|
||||
* Ceedling, these are optional. */
|
||||
void setUp(void);
|
||||
void tearDown(void);
|
||||
|
||||
/* These functions are intended to be called at the beginning and end of an
|
||||
* entire test suite. suiteTearDown() is passed the number of tests that
|
||||
* failed, and its return value becomes the exit code of main(). If using
|
||||
* Unity directly, you're in charge of calling these if they are desired.
|
||||
* If using Ceedling or the test runner generator, these will be called
|
||||
* automatically if they exist. */
|
||||
void suiteSetUp(void);
|
||||
int suiteTearDown(int num_failures);
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Test Reset and Verify
|
||||
*-------------------------------------------------------*/
|
||||
|
||||
/* These functions are intended to be called before during tests in order
|
||||
* to support complex test loops, etc. Both are NOT built into Unity. Instead
|
||||
* the test runner generator will create them. resetTest will run teardown and
|
||||
* setup again, verifying any end-of-test needs between. verifyTest will only
|
||||
* run the verification. */
|
||||
void resetTest(void);
|
||||
void verifyTest(void);
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Configuration Options
|
||||
*-------------------------------------------------------
|
||||
* All options described below should be passed as a compiler flag to all files using Unity. If you must add #defines, place them BEFORE the #include above.
|
||||
|
||||
* Integers/longs/pointers
|
||||
* - Unity attempts to automatically discover your integer sizes
|
||||
* - define UNITY_EXCLUDE_STDINT_H to stop attempting to look in <stdint.h>
|
||||
* - define UNITY_EXCLUDE_LIMITS_H to stop attempting to look in <limits.h>
|
||||
* - If you cannot use the automatic methods above, you can force Unity by using these options:
|
||||
* - define UNITY_SUPPORT_64
|
||||
* - set UNITY_INT_WIDTH
|
||||
* - set UNITY_LONG_WIDTH
|
||||
* - set UNITY_POINTER_WIDTH
|
||||
|
||||
* Floats
|
||||
* - define UNITY_EXCLUDE_FLOAT to disallow floating point comparisons
|
||||
* - define UNITY_FLOAT_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_FLOAT
|
||||
* - define UNITY_FLOAT_TYPE to specify doubles instead of single precision floats
|
||||
* - define UNITY_INCLUDE_DOUBLE to allow double floating point comparisons
|
||||
* - define UNITY_EXCLUDE_DOUBLE to disallow double floating point comparisons (default)
|
||||
* - define UNITY_DOUBLE_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_DOUBLE
|
||||
* - define UNITY_DOUBLE_TYPE to specify something other than double
|
||||
* - define UNITY_EXCLUDE_FLOAT_PRINT to trim binary size, won't print floating point values in errors
|
||||
|
||||
* Output
|
||||
* - by default, Unity prints to standard out with putchar. define UNITY_OUTPUT_CHAR(a) with a different function if desired
|
||||
* - define UNITY_DIFFERENTIATE_FINAL_FAIL to print FAILED (vs. FAIL) at test end summary - for automated search for failure
|
||||
|
||||
* Optimization
|
||||
* - by default, line numbers are stored in unsigned shorts. Define UNITY_LINE_TYPE with a different type if your files are huge
|
||||
* - by default, test and failure counters are unsigned shorts. Define UNITY_COUNTER_TYPE with a different type if you want to save space or have more than 65535 Tests.
|
||||
|
||||
* Test Cases
|
||||
* - define UNITY_SUPPORT_TEST_CASES to include the TEST_CASE macro, though really it's mostly about the runner generator script
|
||||
|
||||
* Parameterized Tests
|
||||
* - you'll want to create a define of TEST_CASE(...) and/or TEST_RANGE(...) which basically evaluates to nothing
|
||||
|
||||
* Tests with Arguments
|
||||
* - you'll want to define UNITY_USE_COMMAND_LINE_ARGS if you have the test runner passing arguments to Unity
|
||||
|
||||
*-------------------------------------------------------
|
||||
* Basic Fail and Ignore
|
||||
*-------------------------------------------------------*/
|
||||
|
||||
#define TEST_FAIL_MESSAGE(message) UNITY_TEST_FAIL(__LINE__, (message))
|
||||
#define TEST_FAIL() UNITY_TEST_FAIL(__LINE__, NULL)
|
||||
#define TEST_IGNORE_MESSAGE(message) UNITY_TEST_IGNORE(__LINE__, (message))
|
||||
#define TEST_IGNORE() UNITY_TEST_IGNORE(__LINE__, NULL)
|
||||
#define TEST_MESSAGE(message) UnityMessage((message), __LINE__)
|
||||
#define TEST_ONLY()
|
||||
#ifdef UNITY_INCLUDE_PRINT_FORMATTED
|
||||
#define TEST_PRINTF(message, ...) UnityPrintF(__LINE__, (message), __VA_ARGS__)
|
||||
#endif
|
||||
|
||||
/* It is not necessary for you to call PASS. A PASS condition is assumed if nothing fails.
|
||||
* This method allows you to abort a test immediately with a PASS state, ignoring the remainder of the test. */
|
||||
#define TEST_PASS() TEST_ABORT()
|
||||
#define TEST_PASS_MESSAGE(message) do { UnityMessage((message), __LINE__); TEST_ABORT(); } while (0)
|
||||
|
||||
/* This macro does nothing, but it is useful for build tools (like Ceedling) to make use of this to figure out
|
||||
* which files should be linked to in order to perform a test. Use it like TEST_FILE("sandwiches.c") */
|
||||
#define TEST_FILE(a)
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Test Asserts (simple)
|
||||
*-------------------------------------------------------*/
|
||||
|
||||
/* Boolean */
|
||||
#define TEST_ASSERT(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expression Evaluated To FALSE")
|
||||
#define TEST_ASSERT_TRUE(condition) UNITY_TEST_ASSERT( (condition), __LINE__, " Expected TRUE Was FALSE")
|
||||
#define TEST_ASSERT_UNLESS(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expression Evaluated To TRUE")
|
||||
#define TEST_ASSERT_FALSE(condition) UNITY_TEST_ASSERT( !(condition), __LINE__, " Expected FALSE Was TRUE")
|
||||
#define TEST_ASSERT_NULL(pointer) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, " Expected NULL")
|
||||
#define TEST_ASSERT_NOT_NULL(pointer) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, " Expected Non-NULL")
|
||||
#define TEST_ASSERT_EMPTY(pointer) UNITY_TEST_ASSERT_EMPTY( (pointer), __LINE__, " Expected Empty")
|
||||
#define TEST_ASSERT_NOT_EMPTY(pointer) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, " Expected Non-Empty")
|
||||
|
||||
/* Integers (of all sizes) */
|
||||
#define TEST_ASSERT_EQUAL_INT(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_size_t(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX8(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX16(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX32(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX64(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_CHAR(expected, actual) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_BITS(mask, expected, actual) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_BITS_HIGH(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(-1), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_BITS_LOW(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(0), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_BIT_HIGH(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(-1), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_BIT_LOW(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(0), (actual), __LINE__, NULL)
|
||||
|
||||
/* Integer Not Equal To (of all sizes) */
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, NULL)
|
||||
|
||||
/* Integer Greater Than/ Less Than (of all sizes) */
|
||||
#define TEST_ASSERT_GREATER_THAN(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, NULL)
|
||||
|
||||
#define TEST_ASSERT_LESS_THAN(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, NULL)
|
||||
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL)
|
||||
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL)
|
||||
|
||||
/* Integer Ranges (of all sizes) */
|
||||
#define TEST_ASSERT_INT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_size_t_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_CHAR_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
|
||||
/* Integer Array Ranges (of all sizes) */
|
||||
#define TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_size_t_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
#define TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL)
|
||||
|
||||
|
||||
/* Structs and Strings */
|
||||
#define TEST_ASSERT_EQUAL_PTR(expected, actual) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_STRING(expected, actual) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_MEMORY(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, NULL)
|
||||
|
||||
/* Arrays */
|
||||
#define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_size_t_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
|
||||
/* Arrays Compared To Single Value */
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_size_t(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
|
||||
/* Floating Point (If Enabled) */
|
||||
#define TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_NOT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_NOT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_FLOAT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_FLOAT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_FLOAT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_FLOAT(threshold, actual) UNITY_TEST_ASSERT_LESS_THAN_FLOAT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_FLOAT(threshold, actual) UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, NULL)
|
||||
|
||||
/* Double (If Enabled) */
|
||||
#define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_NOT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_NOT_WITHIN((delta), (expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_THAN_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_THAN_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_LESS_THAN_DOUBLE((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_DOUBLE(threshold, actual) UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, NULL)
|
||||
|
||||
/* Shorthand */
|
||||
#ifdef UNITY_SHORTHAND_AS_OLD
|
||||
#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal")
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_INT
|
||||
#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_MEM
|
||||
#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, NULL)
|
||||
#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_RAW
|
||||
#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, " Expected Equal")
|
||||
#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal")
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_NONE
|
||||
#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------
|
||||
* Test Asserts (with additional messages)
|
||||
*-------------------------------------------------------*/
|
||||
|
||||
/* Boolean */
|
||||
#define TEST_ASSERT_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, (message))
|
||||
#define TEST_ASSERT_TRUE_MESSAGE(condition, message) UNITY_TEST_ASSERT( (condition), __LINE__, (message))
|
||||
#define TEST_ASSERT_UNLESS_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, (message))
|
||||
#define TEST_ASSERT_FALSE_MESSAGE(condition, message) UNITY_TEST_ASSERT( !(condition), __LINE__, (message))
|
||||
#define TEST_ASSERT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NULL( (pointer), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, (message))
|
||||
#define TEST_ASSERT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_EMPTY( (pointer), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, (message))
|
||||
|
||||
/* Integers (of all sizes) */
|
||||
#define TEST_ASSERT_EQUAL_INT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT8( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT16( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT32( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT64( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_size_t_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX8( (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_BITS_MESSAGE(mask, expected, actual, message) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_BITS_HIGH_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(-1), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_BITS_LOW_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(0), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_BIT_HIGH_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(-1), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_BIT_LOW_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(0), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_CHAR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, (message))
|
||||
|
||||
/* Integer Not Equal To (of all sizes) */
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, (message))
|
||||
|
||||
|
||||
/* Integer Greater Than/ Less Than (of all sizes) */
|
||||
#define TEST_ASSERT_GREATER_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, (message))
|
||||
|
||||
#define TEST_ASSERT_LESS_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, (message))
|
||||
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message))
|
||||
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message))
|
||||
|
||||
/* Integer Ranges (of all sizes) */
|
||||
#define TEST_ASSERT_INT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_INT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_INT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_INT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_INT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_size_t_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_CHAR_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
|
||||
/* Integer Array Ranges (of all sizes) */
|
||||
#define TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_INT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_size_t_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
#define TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message))
|
||||
|
||||
|
||||
/* Structs and Strings */
|
||||
#define TEST_ASSERT_EQUAL_PTR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_MEMORY_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, (message))
|
||||
|
||||
/* Arrays */
|
||||
#define TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_INT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_UINT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_size_t_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_CHAR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
|
||||
/* Arrays Compared To Single Value*/
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_INT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_UINT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_size_t_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_HEX64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_PTR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_STRING_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_MEMORY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_CHAR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, (message))
|
||||
|
||||
/* Floating Point (If Enabled) */
|
||||
#define TEST_ASSERT_FLOAT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_FLOAT((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_FLOAT_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_FLOAT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_FLOAT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_FLOAT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_THAN_FLOAT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_FLOAT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_OR_EQUAL_FLOAT((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, (message))
|
||||
|
||||
/* Double (If Enabled) */
|
||||
#define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_DOUBLE((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_DOUBLE_ARRAY_WITHIN((delta), (expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_EACH_EQUAL_DOUBLE_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_THAN_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_DOUBLE((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_THAN_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_THAN_DOUBLE((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_LESS_OR_EQUAL_DOUBLE_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_LESS_OR_EQUAL_DOUBLE((threshold), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, (message))
|
||||
|
||||
/* Shorthand */
|
||||
#ifdef UNITY_SHORTHAND_AS_OLD
|
||||
#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message))
|
||||
#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, (message))
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_INT
|
||||
#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message)
|
||||
#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_MEM
|
||||
#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, message)
|
||||
#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_RAW
|
||||
#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, message)
|
||||
#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, message)
|
||||
#endif
|
||||
#ifdef UNITY_SHORTHAND_AS_NONE
|
||||
#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand)
|
||||
#endif
|
||||
|
||||
/* end of UNITY_FRAMEWORK_H */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
1145
movement/lib/chirpy_tx/test/unity_internals.h
Normal file
1145
movement/lib/chirpy_tx/test/unity_internals.h
Normal file
File diff suppressed because it is too large
Load diff
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "calc.h"
|
||||
#include "calc_fns.h"
|
||||
|
@ -41,12 +42,11 @@ int calc_init(calc_state_t *cs) {
|
|||
}
|
||||
|
||||
/* calc_input_function
|
||||
* Try to execut the token as a calculator function
|
||||
* TODO: Maybe replace this loop with binary search for token in a sorted calc_dict
|
||||
* Try to execute the token as a calculator function
|
||||
*/
|
||||
int calc_input_function(calc_state_t *cs, char *token) {
|
||||
for(uint8_t idx=0; idx<sizeof(calc_dict)/sizeof(calc_dict[0]); idx++) {
|
||||
for(uint8_t idxn=0; idxn<sizeof(calc_dict[idx].names)/sizeof(calc_dict[idx].names[0]); idxn++) {
|
||||
for(uint8_t idxn=0; idxn<calc_dict[idx].n_names; idxn++) {
|
||||
if(0 == strcmp(calc_dict[idx].names[idxn], token)) { // Found a match
|
||||
return (*calc_dict[idx].fn)(cs); // Run calculator function
|
||||
}
|
||||
|
@ -108,6 +108,6 @@ int calc_input_float(calc_state_t *cs, char *token) {
|
|||
*/
|
||||
int calc_input(calc_state_t *cs, char *token) {
|
||||
int retval = calc_input_function(cs, token);
|
||||
if(retval == -1) retval = calc_input_float(cs, token);
|
||||
if(-1 == retval) retval = calc_input_float(cs, token);
|
||||
return retval;
|
||||
}
|
||||
|
|
|
@ -227,4 +227,14 @@ int calc_atan2d(calc_state_t *cs) {
|
|||
cs->s--;
|
||||
return 0;
|
||||
}
|
||||
int calc_torad(calc_state_t *cs) {
|
||||
STACK_CHECK_1_IN_1_OUT;
|
||||
cs->stack[cs->s-1] = cs->stack[cs->s-1]*to_rad;
|
||||
return 0;
|
||||
}
|
||||
int calc_todeg(calc_state_t *cs) {
|
||||
STACK_CHECK_1_IN_1_OUT;
|
||||
cs->stack[cs->s-1] = cs->stack[cs->s-1]*to_deg;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,57 +67,62 @@ int calc_asind(calc_state_t *cs);
|
|||
int calc_acosd(calc_state_t *cs);
|
||||
int calc_atand(calc_state_t *cs);
|
||||
int calc_atan2d(calc_state_t *cs);
|
||||
int calc_torad(calc_state_t *cs);
|
||||
int calc_todeg(calc_state_t *cs);
|
||||
|
||||
// Dictionary definition
|
||||
typedef int (*calc_fn_t)(calc_state_t *cs);
|
||||
typedef struct {
|
||||
char *names[3]; // Token to use to run this function
|
||||
uint8_t n_names; // Number of aliases
|
||||
const char ** names; // Token to use to run this function
|
||||
calc_fn_t fn; // Pointer to function
|
||||
} calc_dict_entry_t;
|
||||
|
||||
static const calc_dict_entry_t calc_dict[] = {
|
||||
// Stack and register control
|
||||
{{"x"}, &calc_delete},
|
||||
{{"xx"}, &calc_clear_stack},
|
||||
{{"xxx"}, &calc_init},
|
||||
{{"f"}, &calc_flip},
|
||||
{{"mc"}, &calc_mem_clear},
|
||||
{{"mr"}, &calc_mem_recall},
|
||||
{{"ma"}, &calc_mem_add},
|
||||
{{"ms"}, &calc_mem_subtract},
|
||||
{1, (const char*[]){"x"}, &calc_delete},
|
||||
{1, (const char*[]){"xx"}, &calc_clear_stack},
|
||||
{1, (const char*[]){"xxx"}, &calc_init},
|
||||
{1, (const char*[]){"f"}, &calc_flip},
|
||||
{1, (const char*[]){"mc"}, &calc_mem_clear},
|
||||
{1, (const char*[]){"mr"}, &calc_mem_recall},
|
||||
{1, (const char*[]){"ma"}, &calc_mem_add},
|
||||
{1, (const char*[]){"ms"}, &calc_mem_subtract},
|
||||
|
||||
// Basic operations
|
||||
{{"a"}, &calc_add},
|
||||
{{"s"}, &calc_subtract},
|
||||
{{"n"}, &calc_negate},
|
||||
{{"m"}, &calc_multiply},
|
||||
{{"d"}, &calc_divide},
|
||||
{{"i"}, &calc_invert},
|
||||
{1, (const char*[]){"a"}, &calc_add},
|
||||
{1, (const char*[]){"s"}, &calc_subtract},
|
||||
{1, (const char*[]){"n"}, &calc_negate},
|
||||
{1, (const char*[]){"m"}, &calc_multiply},
|
||||
{1, (const char*[]){"d"}, &calc_divide},
|
||||
{1, (const char*[]){"i"}, &calc_invert},
|
||||
|
||||
// Constants
|
||||
{{"e"}, &calc_e},
|
||||
{{"pi"}, &calc_pi},
|
||||
{1, (const char*[]){"e"}, &calc_e},
|
||||
{1, (const char*[]){"pi"}, &calc_pi},
|
||||
|
||||
// Exponential/logarithmic
|
||||
{{"exp"}, &calc_exp},
|
||||
{{"pow"}, &calc_pow},
|
||||
{{"ln"}, &calc_ln},
|
||||
{{"log"}, &calc_log},
|
||||
{{"sqrt"}, &calc_sqrt},
|
||||
{1, (const char*[]){"exp"}, &calc_exp},
|
||||
{1, (const char*[]){"pow"}, &calc_pow},
|
||||
{1, (const char*[]){"ln"}, &calc_ln},
|
||||
{1, (const char*[]){"log"}, &calc_log},
|
||||
{1, (const char*[]){"sqrt"}, &calc_sqrt},
|
||||
|
||||
// Trigonometric
|
||||
{{"sin", "sn"}, &calc_sin},
|
||||
{{"cos"}, &calc_cos},
|
||||
{{"tan"}, &calc_tan},
|
||||
{{"asin"}, &calc_asin},
|
||||
{{"acos"}, &calc_acos},
|
||||
{{"atan"}, &calc_atan},
|
||||
{{"atan2"}, &calc_atan2},
|
||||
{{"sind"}, &calc_sind},
|
||||
{{"cosd"}, &calc_cosd},
|
||||
{{"tand"}, &calc_tand},
|
||||
{{"asind"}, &calc_asind},
|
||||
{{"acosd"}, &calc_acosd},
|
||||
{{"atand"}, &calc_atand},
|
||||
{{"atan2d"}, &calc_atan2d},
|
||||
{2, (const char*[]){"sin", "sn"}, &calc_sin},
|
||||
{1, (const char*[]){"cos"}, &calc_cos},
|
||||
{1, (const char*[]){"tan"}, &calc_tan},
|
||||
{1, (const char*[]){"asin"}, &calc_asin},
|
||||
{1, (const char*[]){"acos"}, &calc_acos},
|
||||
{1, (const char*[]){"atan"}, &calc_atan},
|
||||
{1, (const char*[]){"atan2"}, &calc_atan2},
|
||||
{1, (const char*[]){"sind"}, &calc_sind},
|
||||
{1, (const char*[]){"cosd"}, &calc_cosd},
|
||||
{1, (const char*[]){"tand"}, &calc_tand},
|
||||
{1, (const char*[]){"asind"}, &calc_asind},
|
||||
{1, (const char*[]){"acosd"}, &calc_acosd},
|
||||
{1, (const char*[]){"atand"}, &calc_atand},
|
||||
{1, (const char*[]){"atan2d"}, &calc_atan2d},
|
||||
{1, (const char*[]){"tor"}, &calc_torad},
|
||||
{1, (const char*[]){"tod"}, &calc_todeg},
|
||||
};
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Christian Chapman
|
||||
*
|
||||
* 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 <string.h>
|
||||
#include "mc.h"
|
||||
|
||||
/* mc_reset Initialize or reset an MC buffer
|
||||
* Input: mc = location of buffer to reset
|
||||
*/
|
||||
void mc_reset(mc_state_t * mc) {
|
||||
memset(mc->b, '\0', BUFFLEN*sizeof(mc->b[0]));
|
||||
mc->bidx = 0;
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
/* mc_input Read an input into a morse code buffer
|
||||
* Input: mc = buffer to read into
|
||||
* c = character to read into buffer ('.' or '-', ignored otherwise).
|
||||
* If the buffer is full, reset it instead of entering the new character.
|
||||
*/
|
||||
void mc_input(mc_state_t * mc, char c) {
|
||||
if(mc->bidx >= BUFFLEN) mc_reset(mc);
|
||||
else if( ('.' == c) || ('-' == c) ) {
|
||||
mc->b[mc->bidx] = c;
|
||||
mc->bidx++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* mc_dec Decode a Morse code character (descend MC_DEC_KEY[])
|
||||
* Input: b = BUFFLEN-length char array with '.'s and '-'s
|
||||
* Output: c = Character b represents, or '\0' if not a Morse code.
|
||||
*/
|
||||
char mc_dec(char b[BUFFLEN]) {
|
||||
uint8_t pos = 1; // Binary tree position ('.'=0; '-'=1)
|
||||
for(uint8_t idx=0; idx<BUFFLEN; idx++) {
|
||||
if('.' == b[idx]) pos = 2*pos; // Descend in . direction
|
||||
else if('-' == b[idx]) pos = 2*pos+1; // Descend in - direction
|
||||
else break; // End of morse code segment; finished descending
|
||||
}
|
||||
return MC_DEC_KEY[pos-1];
|
||||
}
|
||||
|
147
movement/lib/morsecalc/morsecalc_display.c
Normal file
147
movement/lib/morsecalc/morsecalc_display.c
Normal file
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Christian Chapman
|
||||
*
|
||||
* 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 <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "watch_private_display.h"
|
||||
#include "morsecalc_display.h"
|
||||
|
||||
// Display float on screen
|
||||
void morsecalc_display_float(double d) {
|
||||
// Special cases
|
||||
if(d == 0) {
|
||||
watch_display_string(" 0", 4);
|
||||
return;
|
||||
}
|
||||
else if(isnan(d)) {
|
||||
watch_display_string(" nan", 4);
|
||||
return;
|
||||
}
|
||||
else if(d == (1.0)/(0.0)) {
|
||||
watch_display_string(" inf", 4);
|
||||
return;
|
||||
}
|
||||
else if(d == (-1.0)/(0.0)) {
|
||||
watch_display_character('X', 1);
|
||||
watch_display_string(" inf", 4);
|
||||
return;
|
||||
}
|
||||
|
||||
// Record number properties
|
||||
// Sign
|
||||
int is_negative = d<0;
|
||||
if(is_negative) d = -d;
|
||||
|
||||
// Order of magnitude
|
||||
int om = (int) floor(log(d)/log(10));
|
||||
int om_is_negative = (om<0);
|
||||
|
||||
// Get the first 4 significant figures
|
||||
int digits;
|
||||
digits = round(d*pow(10.0, 3-om));
|
||||
if(digits>9999) {
|
||||
digits = 1000;
|
||||
om++;
|
||||
}
|
||||
|
||||
// Print signs
|
||||
if(is_negative) {
|
||||
// Xi; see https://joeycastillo.github.io/Sensor-Watch-Documentation/segmap
|
||||
watch_set_pixel(0,11);
|
||||
watch_set_pixel(2,12);
|
||||
watch_set_pixel(2,11);
|
||||
}
|
||||
else watch_display_character(' ', 1);
|
||||
if(om_is_negative) watch_set_pixel(1,9);
|
||||
else watch_display_character(' ', 2);
|
||||
|
||||
// Print first 4 significant figures
|
||||
watch_display_character('0'+(digits/1000)%10, 4);
|
||||
watch_display_character('0'+(digits/100 )%10, 5);
|
||||
watch_display_character('0'+(digits/10 )%10, 6);
|
||||
watch_display_character('0'+(digits/1 )%10, 7);
|
||||
|
||||
// Prinat exponent
|
||||
if(om_is_negative) om = -om; // Make exponent positive for display
|
||||
if(om<=99) {
|
||||
watch_display_character('0'+(om/10 )%10, 8);
|
||||
watch_display_character('0'+(om/1 )%10, 9);
|
||||
} else { // Over/underflow
|
||||
if(om_is_negative) watch_display_string(" uf", 4);
|
||||
else watch_display_string(" of", 4);
|
||||
if(om<9999) { // Use main display to show order of magnitude
|
||||
// (Should always succeed; max double is <2e308)
|
||||
watch_display_character('0'+(om/1000)%10, 4);
|
||||
watch_display_character('0'+(om/100 )%10, 5);
|
||||
watch_display_character('0'+(om/10 )%10, 6);
|
||||
watch_display_character('0'+(om/1 )%10, 7);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Print current input token
|
||||
void morsecalc_display_token(morsecalc_state_t *mcs) {
|
||||
watch_display_string(" ", 0); // Clear display
|
||||
|
||||
// Print morse code buffer
|
||||
char c = MORSECODE_TREE[mcs->mc]; // Decode the morse code buffer's current contents
|
||||
if('\0' == c) c = ' '; // Needed for watch_display_character
|
||||
watch_display_character(c, 0); // Display current morse code char in mode position
|
||||
|
||||
unsigned int v = mcs->mc+1;
|
||||
char bidx = 0; while (v >>= 1) bidx++;
|
||||
watch_display_character('0'+bidx, 3); // Display buffer position in top right
|
||||
|
||||
// Print last 6 chars of current input line
|
||||
uint8_t nlen = strlen(mcs->token); // number of characters in token
|
||||
uint8_t nprint = min(nlen,6); // number of characters to print
|
||||
watch_display_string(mcs->token+nlen-nprint, 10-nprint); // print right-aligned
|
||||
return;
|
||||
}
|
||||
|
||||
// Print stack or memory register contents.
|
||||
void morsecalc_display_stack(morsecalc_state_t * mcs) {
|
||||
watch_display_string(" ", 0); // Clear display
|
||||
|
||||
char c = MORSECODE_TREE[mcs->mc];
|
||||
if('m' == c) { // Display memory
|
||||
morsecalc_display_float(mcs->cs->mem);
|
||||
watch_display_character(c, 0);
|
||||
}
|
||||
else {
|
||||
// If the morse code buffer has a numeral in it, print that stack item
|
||||
// Otherwise print top of stack
|
||||
uint8_t idx = 0;
|
||||
if(c >= '0' && c <= '9') idx = c - '0';
|
||||
if(idx >= mcs->cs->s) watch_display_string(" empty", 4); // Stack empty
|
||||
else morsecalc_display_float(mcs->cs->stack[mcs->cs->s-1-idx]); // Print stack item
|
||||
|
||||
watch_display_character('0'+idx, 0); // Print which stack item this is top center
|
||||
}
|
||||
watch_display_character('0'+(mcs->cs->s), 3); // Print the # of stack items top right
|
||||
return;
|
||||
}
|
||||
|
|
@ -22,30 +22,14 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "morsecalc_face.h"
|
||||
|
||||
/* mc Morse code reading methods
|
||||
*/
|
||||
#include "stdint.h"
|
||||
// Display float on screen
|
||||
void morsecalc_display_float(double d);
|
||||
|
||||
#define BUFFLEN 5
|
||||
typedef struct {
|
||||
char b[BUFFLEN];
|
||||
uint8_t bidx;
|
||||
} mc_state_t;
|
||||
// Print current input token
|
||||
void morsecalc_display_token(morsecalc_state_t *mcs);
|
||||
|
||||
// MC_DEC_KEY represents a binary tree of International Morse Code.
|
||||
// where '.' = 0 and '-' = 1. Levels of the tree are concatenated.
|
||||
//
|
||||
// Capitals denote special characters:
|
||||
// C = Ch digraph
|
||||
// V = VERIFY (ITU-R "UNDERSTOOD")
|
||||
// R = REPEAT
|
||||
// W = WAIT
|
||||
// S = START TRANSMISSION
|
||||
// E = END OF WORK
|
||||
static const char MC_DEC_KEY[] = " etianmsurwdkgohvf\0l\0pjbxcyzq\0C\x35\x34V\x33\0R\0\x32W\0+\0\0\0\0\x31\x36=/\0\0S(\0\x37\0\0\0\x38\0\x39\x30\0\0\0\0\0E\0\0\0\0\0\0?_\0\0\0\0\"\0\0.\0\0\0\0@\0\0\0'\0\0-\0\0\0\0\0\0\0\0;!\0)\0\0\0\0\0,\0\0\0\0:\0\0\0\0\0\0\0";
|
||||
|
||||
void mc_reset(mc_state_t * mcb);
|
||||
void mc_input(mc_state_t * mc, char c);
|
||||
char mc_dec(char b[BUFFLEN]);
|
||||
// Print stack or memory register contents.
|
||||
void morsecalc_display_stack(morsecalc_state_t *mcs);
|
||||
|
66
movement/lib/morsecalc/test_morsecalc.c
Normal file
66
movement/lib/morsecalc/test_morsecalc.c
Normal file
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Christian Chapman
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// Computer console interface to calc and morsecode for testing without involving watch stuff.
|
||||
// cc calc_strtof.c calc.c calc_fns.c test_morsecalc.c -lm
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "calc.h"
|
||||
#include "calc_fns.h"
|
||||
|
||||
int main(void) {
|
||||
calc_state_t cs;
|
||||
calc_init(&cs);
|
||||
|
||||
char * word = malloc(0);
|
||||
unsigned int nword = 0;
|
||||
char c;
|
||||
int retval = 0;
|
||||
for(unsigned int ii = 0; ii < 100; ii++) {
|
||||
c = getchar();
|
||||
word = realloc(word, (++nword)*sizeof(char));
|
||||
word[nword-1] = c;
|
||||
if((nword > 0) && isspace(c)) { // Word is finished
|
||||
word[nword-1] = '\0';
|
||||
retval = calc_input(&cs, word); // Submit word
|
||||
word = realloc(word, 0); nword = 0; // Clear word
|
||||
|
||||
switch(retval) {
|
||||
case 0: printf("Success.\n"); break;
|
||||
case -1: printf("Bad command.\n"); break;
|
||||
case -2: printf("Stack over/underflow.\n"); break;
|
||||
case -3: printf("Error.\n"); break;
|
||||
}
|
||||
if(cs.s > 0) printf("[%i]: %.4f\n", cs.s, cs.stack[cs.s-1]);
|
||||
else printf("[%i]\n", cs.s);
|
||||
}
|
||||
}
|
||||
|
||||
free(word);
|
||||
return 0;
|
||||
}
|
|
@ -17,6 +17,7 @@ INCLUDES += \
|
|||
-I../watch_faces/sensor/ \
|
||||
-I../watch_faces/demo/ \
|
||||
-I../../littlefs/ \
|
||||
-I../lib/chirpy_tx/ \
|
||||
-I../lib/TOTP/ \
|
||||
-I../lib/base32/ \
|
||||
-I../lib/sunriset/ \
|
||||
|
@ -31,6 +32,7 @@ INCLUDES += \
|
|||
# ../drivers/lis2dh.c \
|
||||
# ../watch_faces/fitness/step_count_face.c
|
||||
SRCS += \
|
||||
../lib/chirpy_tx/chirpy_tx.c \
|
||||
../lib/TOTP/sha1.c \
|
||||
../lib/TOTP/sha256.c \
|
||||
../lib/TOTP/sha512.c \
|
||||
|
@ -42,7 +44,7 @@ SRCS += \
|
|||
../lib/morsecalc/calc.c \
|
||||
../lib/morsecalc/calc_fns.c \
|
||||
../lib/morsecalc/calc_strtof.c \
|
||||
../lib/morsecalc/mc.c \
|
||||
../lib/morsecalc/morsecalc_display.c \
|
||||
../../littlefs/lfs.c \
|
||||
../../littlefs/lfs_util.c \
|
||||
../movement.c \
|
||||
|
@ -95,9 +97,23 @@ SRCS += \
|
|||
../watch_faces/complication/tarot_face.c \
|
||||
../watch_faces/complication/morsecalc_face.c \
|
||||
../watch_faces/complication/rpn_calculator_face.c \
|
||||
../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/planetary_time_face.c \
|
||||
../watch_faces/complication/planetary_hours_face.c \
|
||||
../watch_faces/complication/breathing_face.c \
|
||||
../watch_faces/clock/repetition_minute_face.c \
|
||||
../watch_faces/complication/timer_face.c \
|
||||
../watch_faces/complication/invaders_face.c \
|
||||
../watch_faces/clock/world_clock2_face.c \
|
||||
../watch_faces/complication/time_left_face.c \
|
||||
../watch_faces/complication/randonaut_face.c \
|
||||
../watch_faces/complication/toss_up_face.c \
|
||||
../watch_faces/complication/geomancy_face.c \
|
||||
# New watch faces go above this line.
|
||||
|
||||
# Leave this line at the bottom of the file; it has all the targets for making your project.
|
||||
|
|
|
@ -73,9 +73,24 @@
|
|||
#include "interval_face.h"
|
||||
#include "morsecalc_face.h"
|
||||
#include "rpn_calculator_face.h"
|
||||
#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 "planetary_time_face.h"
|
||||
#include "planetary_hours_face.h"
|
||||
#include "breathing_face.h"
|
||||
#include "repetition_minute_face.h"
|
||||
#include "timer_face.h"
|
||||
#include "invaders_face.h"
|
||||
#include "world_clock2_face.h"
|
||||
#include "time_left_face.h"
|
||||
#include "randonaut_face.h"
|
||||
#include "toss_up_face.h"
|
||||
#include "geomancy_face.h"
|
||||
#include "dual_timer_face.h"
|
||||
// New includes go above this line.
|
||||
|
||||
#endif // MOVEMENT_FACES_H_
|
||||
|
|
231
movement/watch_faces/clock/repetition_minute_face.c
Normal file
231
movement/watch_faces/clock/repetition_minute_face.c
Normal file
|
@ -0,0 +1,231 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Jonas Termeau
|
||||
*
|
||||
* 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 <stdlib.h>
|
||||
#include "repetition_minute_face.h"
|
||||
#include "watch.h"
|
||||
#include "watch_utility.h"
|
||||
#include "watch_private_display.h"
|
||||
|
||||
void play_hour_chime(void) {
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C6, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 500);
|
||||
}
|
||||
|
||||
void play_quarter_chime(void) {
|
||||
watch_buzzer_play_note(BUZZER_NOTE_E6, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 150);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C6, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 750);
|
||||
}
|
||||
|
||||
void play_minute_chime(void) {
|
||||
watch_buzzer_play_note(BUZZER_NOTE_E6, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 500);
|
||||
}
|
||||
|
||||
static void _update_alarm_indicator(bool settings_alarm_enabled, repetition_minute_state_t *state) {
|
||||
state->alarm_enabled = settings_alarm_enabled;
|
||||
if (state->alarm_enabled) watch_set_indicator(WATCH_INDICATOR_SIGNAL);
|
||||
else watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
|
||||
}
|
||||
|
||||
void repetition_minute_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(repetition_minute_state_t));
|
||||
repetition_minute_state_t *state = (repetition_minute_state_t *)*context_ptr;
|
||||
state->signal_enabled = false;
|
||||
state->watch_face_index = watch_face_index;
|
||||
}
|
||||
}
|
||||
|
||||
void repetition_minute_face_activate(movement_settings_t *settings, void *context) {
|
||||
repetition_minute_state_t *state = (repetition_minute_state_t *)context;
|
||||
|
||||
if (watch_tick_animation_is_running()) watch_stop_tick_animation();
|
||||
|
||||
if (settings->bit.clock_mode_24h) watch_set_indicator(WATCH_INDICATOR_24H);
|
||||
|
||||
// handle chime indicator
|
||||
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
||||
else watch_clear_indicator(WATCH_INDICATOR_BELL);
|
||||
|
||||
// show alarm indicator if there is an active alarm
|
||||
_update_alarm_indicator(settings->bit.alarm_enabled, state);
|
||||
|
||||
watch_set_colon();
|
||||
|
||||
// this ensures that none of the timestamp fields will match, so we can re-render them all.
|
||||
state->previous_date_time = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
bool repetition_minute_face_loop(movement_event_t event, movement_settings_t *settings, void *context) {
|
||||
repetition_minute_state_t *state = (repetition_minute_state_t *)context;
|
||||
char buf[11];
|
||||
uint8_t pos;
|
||||
|
||||
watch_date_time date_time;
|
||||
uint32_t previous_date_time;
|
||||
switch (event.event_type) {
|
||||
case EVENT_ACTIVATE:
|
||||
case EVENT_TICK:
|
||||
case EVENT_LOW_ENERGY_UPDATE:
|
||||
date_time = watch_rtc_get_date_time();
|
||||
previous_date_time = state->previous_date_time;
|
||||
state->previous_date_time = date_time.reg;
|
||||
|
||||
// check the battery voltage once a day...
|
||||
if (date_time.unit.day != state->last_battery_check) {
|
||||
state->last_battery_check = date_time.unit.day;
|
||||
watch_enable_adc();
|
||||
uint16_t voltage = watch_get_vcc_voltage();
|
||||
watch_disable_adc();
|
||||
// 2.2 volts will happen when the battery has maybe 5-10% remaining?
|
||||
// we can refine this later.
|
||||
state->battery_low = (voltage < 2200);
|
||||
}
|
||||
|
||||
// ...and set the LAP indicator if low.
|
||||
if (state->battery_low) watch_set_indicator(WATCH_INDICATOR_LAP);
|
||||
|
||||
if ((date_time.reg >> 6) == (previous_date_time >> 6) && event.event_type != EVENT_LOW_ENERGY_UPDATE) {
|
||||
// everything before seconds is the same, don't waste cycles setting those segments.
|
||||
watch_display_character_lp_seconds('0' + date_time.unit.second / 10, 8);
|
||||
watch_display_character_lp_seconds('0' + date_time.unit.second % 10, 9);
|
||||
break;
|
||||
} else if ((date_time.reg >> 12) == (previous_date_time >> 12) && event.event_type != EVENT_LOW_ENERGY_UPDATE) {
|
||||
// everything before minutes is the same.
|
||||
pos = 6;
|
||||
sprintf(buf, "%02d%02d", date_time.unit.minute, date_time.unit.second);
|
||||
} else {
|
||||
// other stuff changed; let's do it all.
|
||||
if (!settings->bit.clock_mode_24h) {
|
||||
// if we are in 12 hour mode, do some cleanup.
|
||||
if (date_time.unit.hour < 12) {
|
||||
watch_clear_indicator(WATCH_INDICATOR_PM);
|
||||
} else {
|
||||
watch_set_indicator(WATCH_INDICATOR_PM);
|
||||
}
|
||||
date_time.unit.hour %= 12;
|
||||
if (date_time.unit.hour == 0) date_time.unit.hour = 12;
|
||||
}
|
||||
pos = 0;
|
||||
if (event.event_type == EVENT_LOW_ENERGY_UPDATE) {
|
||||
if (!watch_tick_animation_is_running()) watch_start_tick_animation(500);
|
||||
sprintf(buf, "%s%2d%2d%02d ", watch_utility_get_weekday(date_time), date_time.unit.day, date_time.unit.hour, date_time.unit.minute);
|
||||
} else {
|
||||
sprintf(buf, "%s%2d%2d%02d%02d", watch_utility_get_weekday(date_time), date_time.unit.day, date_time.unit.hour, date_time.unit.minute, date_time.unit.second);
|
||||
}
|
||||
}
|
||||
watch_display_string(buf, pos);
|
||||
// handle alarm indicator
|
||||
if (state->alarm_enabled != settings->bit.alarm_enabled) _update_alarm_indicator(settings->bit.alarm_enabled, state);
|
||||
break;
|
||||
case EVENT_ALARM_LONG_PRESS:
|
||||
state->signal_enabled = !state->signal_enabled;
|
||||
if (state->signal_enabled) watch_set_indicator(WATCH_INDICATOR_BELL);
|
||||
else watch_clear_indicator(WATCH_INDICATOR_BELL);
|
||||
break;
|
||||
case EVENT_BACKGROUND_TASK:
|
||||
// uncomment this line to snap back to the clock face when the hour signal sounds:
|
||||
// movement_move_to_face(state->watch_face_index);
|
||||
if (watch_is_buzzer_or_led_enabled()) {
|
||||
// if we are in the foreground, we can just beep.
|
||||
movement_play_signal();
|
||||
} else {
|
||||
// if we were in the background, we need to enable the buzzer peripheral first,
|
||||
watch_enable_buzzer();
|
||||
// beep quickly (this call blocks for 275 ms),
|
||||
movement_play_signal();
|
||||
// and then turn the buzzer peripheral off again.
|
||||
watch_disable_buzzer();
|
||||
}
|
||||
break;
|
||||
case EVENT_LIGHT_LONG_UP:
|
||||
/*
|
||||
* Howdy neighbors, this is the actual complication. Like an actual
|
||||
* (very expensive) watch with a repetition minute complication it's
|
||||
* boring at 00:00 or 1:00 and very quite musical at 23:59 or 12:59.
|
||||
*/
|
||||
|
||||
date_time = watch_rtc_get_date_time();
|
||||
|
||||
|
||||
int hours = date_time.unit.hour;
|
||||
int quarters = date_time.unit.minute / 15;
|
||||
int minutes = date_time.unit.minute % 15;
|
||||
|
||||
// chiming hours
|
||||
if (!settings->bit.clock_mode_24h) {
|
||||
hours = date_time.unit.hour % 12;
|
||||
if (hours == 0) hours = 12;
|
||||
}
|
||||
if (hours > 0) {
|
||||
int count = 0;
|
||||
for(count = hours; count > 0; --count) {
|
||||
play_hour_chime();
|
||||
}
|
||||
}
|
||||
|
||||
// chiming quarters (if needed)
|
||||
if (quarters > 0) {
|
||||
int count = 0;
|
||||
for(count = quarters; count > 0; --count) {
|
||||
play_quarter_chime();
|
||||
}
|
||||
}
|
||||
|
||||
// chiming minutes (if needed)
|
||||
if (minutes > 0) {
|
||||
int count = 0;
|
||||
for(count = minutes; count > 0; --count) {
|
||||
play_minute_chime();
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
return movement_default_loop_handler(event, settings);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void repetition_minute_face_resign(movement_settings_t *settings, void *context) {
|
||||
(void) settings;
|
||||
(void) context;
|
||||
}
|
||||
|
||||
bool repetition_minute_face_wants_background_task(movement_settings_t *settings, void *context) {
|
||||
(void) settings;
|
||||
repetition_minute_state_t *state = (repetition_minute_state_t *)context;
|
||||
if (!state->signal_enabled) return false;
|
||||
|
||||
watch_date_time date_time = watch_rtc_get_date_time();
|
||||
|
||||
return date_time.unit.minute == 0;
|
||||
}
|
83
movement/watch_faces/clock/repetition_minute_face.h
Normal file
83
movement/watch_faces/clock/repetition_minute_face.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Jonas Termeau
|
||||
*
|
||||
* 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 REPETITION_MINUTE_FACE_H_
|
||||
#define REPETITION_MINUTE_FACE_H_
|
||||
|
||||
#include "movement.h"
|
||||
|
||||
/*
|
||||
* A hopefully useful complication for friendly neighbors in the dark
|
||||
*
|
||||
* Originating from 1676 from reverend and mechanician Edward Barlow, and
|
||||
* perfected in 1820 by neighbor Abraham Breguet, a minute repeater or
|
||||
* "repetition minute" is a complication in a mechanical watch or clock that
|
||||
* chimes the hours and often minutes at the press of a button. There are many
|
||||
* types of repeater, from the simple repeater which merely strikes the number
|
||||
* of hours, to the minute repeater which chimes the time down to the minute,
|
||||
* using separate tones for hours, quarter hours, and minutes. They originated
|
||||
* before widespread artificial illumination, to allow the time to be determined
|
||||
* in the dark, and were also used by the visually impaired.
|
||||
*
|
||||
*
|
||||
* How to use it :
|
||||
*
|
||||
* Long press the light button to get an auditive reading of the time like so :
|
||||
* 0..23 (1..12 if 24-hours format isn't enabled) low beep(s) for the hours
|
||||
* 0..3 low-high couple pitched beeps for the quarters
|
||||
* 0..14 high pitched beep(s) for the remaining minutes
|
||||
*
|
||||
* Prerequisite : a watch with a working buzzer
|
||||
*
|
||||
* ~ Only in the darkness can you see the stars. - Martin Luther King ~
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
uint32_t previous_date_time;
|
||||
uint8_t last_battery_check;
|
||||
uint8_t watch_face_index;
|
||||
bool signal_enabled;
|
||||
bool battery_low;
|
||||
bool alarm_enabled;
|
||||
} repetition_minute_state_t;
|
||||
|
||||
void play_hour_chime(void);
|
||||
void play_quarter_chime(void);
|
||||
void play_minute_chime(void);
|
||||
void repetition_minute_face_setup(movement_settings_t *settings, uint8_t watch_face_index, void ** context_ptr);
|
||||
void repetition_minute_face_activate(movement_settings_t *settings, void *context);
|
||||
bool repetition_minute_face_loop(movement_event_t event, movement_settings_t *settings, void *context);
|
||||
void repetition_minute_face_resign(movement_settings_t *settings, void *context);
|
||||
bool repetition_minute_face_wants_background_task(movement_settings_t *settings, void *context);
|
||||
|
||||
#define repetition_minute_face ((const watch_face_t){ \
|
||||
repetition_minute_face_setup, \
|
||||
repetition_minute_face_activate, \
|
||||
repetition_minute_face_loop, \
|
||||
repetition_minute_face_resign, \
|
||||
repetition_minute_face_wants_background_task, \
|
||||
})
|
||||
|
||||
#endif // REPETITION_MINUTE_FACE_H_
|
450
movement/watch_faces/clock/world_clock2_face.c
Normal file
450
movement/watch_faces/clock/world_clock2_face.c
Normal file
|
@ -0,0 +1,450 @@
|
|||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2023 Konrad Rieck
|
||||
* Copyright (c) 2022 Joey Castillo
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* World Clock 2
|
||||
* =============
|
||||
*
|
||||
* This is an alternative world clock face that allows the user to cycle
|
||||
* through a list of selected time zones. It extends the original
|
||||
* implementation by Joey Castillo. The face has two modes *display mode*
|
||||
* and *settings mode*.
|
||||
*
|
||||
* ### Settings mode
|
||||
*
|
||||
* When the clock face is activated for the first time, it enters
|
||||
* *settings mode*. Here, the user can select the time zones they want to
|
||||
* display. The face shows a summary of the current time zone:
|
||||
*
|
||||
* - The top of the face displays the first two letters of the time zone
|
||||
* abbreviation, such as "PS" for Pacific Standard Time or CE for
|
||||
* "Central European Time".
|
||||
*
|
||||
* - The upper-right corner shows the index number of the time zone. This
|
||||
* helps avoid confusion when multiple time zones have the same
|
||||
* two-letter abbreviation.
|
||||
*
|
||||
* - The main display shows the offset from UTC, with a "+" indicating a
|
||||
* positive offset and a "-" indicating a negative offset. For example,
|
||||
* the offset for Japanese Standard Time is displayed as "+9:00".
|
||||
*
|
||||
* The user can navigate through the time zones and select them using the
|
||||
* following buttons:
|
||||
*
|
||||
* - The *alarm button* moves forward to the next time zone, while the
|
||||
* *light button* moves backward to the previous zone. This way, the
|
||||
* user can cycle through all 41 supported time zones.
|
||||
*
|
||||
* - A *long press* on the *light button* selects the current time zone,
|
||||
* and the signal indicator appears at the top left. Another *long
|
||||
* press* of the *light button* deselects the time zone.
|
||||
*
|
||||
* - A *long press* on the *alarm button* exits settings mode and returns
|
||||
* to display mode.
|
||||
*
|
||||
* ### Display mode
|
||||
*
|
||||
* In the display mode, the face shows the time of the currently selected
|
||||
* time zone. The face includes the following components:
|
||||
*
|
||||
* - The top of the face displays the first two letters of the time zone
|
||||
* abbreviation, such as "PS" for Pacific Standard Time or "CE" for
|
||||
* Central European Time.
|
||||
*
|
||||
* - The upper-right corner shows the current day of the month, which
|
||||
* helps indicate time zones that cross the international date line
|
||||
* with respect to the local time.
|
||||
*
|
||||
* - The main display shows the time in the selected time zone in either
|
||||
* 12-hour or 24-hour form. There is no timeout, allowing users to keep
|
||||
* the chosen time zone displayed for as long as they wish.
|
||||
*
|
||||
* The user can navigate through the selected time zones using the
|
||||
* following buttons:
|
||||
*
|
||||
* - The *alarm button* moves to the next selected time zone, while the
|
||||
* light button moves to the *previous zone*. If no time zone is
|
||||
* selected, the face simply shows UTC.
|
||||
*
|
||||
* - A *long press* on the *alarm button* enters settings mode and
|
||||
* enables the user to re-configure the selected time zones.
|
||||
*
|
||||
* - A *long press* on the *light button* activates the LED illumination
|
||||
* of the watch.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "world_clock2_face.h"
|
||||
#include "watch.h"
|
||||
#include "watch_utility.h"
|
||||
#include "watch_utility.h"
|
||||
|
||||
static bool refresh_face;
|
||||
|
||||
/* Simple macros for navigation */
|
||||
#define FORWARD +1
|
||||
#define BACKWARD -1
|
||||
|
||||
/* Activate refresh of time */
|
||||
#define REFRESH_TIME 0xffffffff
|
||||
|
||||
/* List of all time zone names */
|
||||
const char *zone_names[] = {
|
||||
"UTC", // 0 : 0:00:00 (UTC)
|
||||
"CET", // 1 : 1:00:00 (Central European Time)
|
||||
"SAST", // 2 : 2:00:00 (South African Standard Time)
|
||||
"ARST", // 3 : 3:00:00 (Arabia Standard Time)
|
||||
"IRST", // 4 : 3:30:00 (Iran Standard Time)
|
||||
"GET", // 5 : 4:00:00 (Georgia Standard Time)
|
||||
"AFT", // 6 : 4:30:00 (Afghanistan Time)
|
||||
"PKT", // 7 : 5:00:00 (Pakistan Standard Time)
|
||||
"IST", // 8 : 5:30:00 (Indian Standard Time)
|
||||
"NPT", // 9 : 5:45:00 (Nepal Time)
|
||||
"KGT", // 10 : 6:00:00 (Kyrgyzstan time)
|
||||
"MYST", // 11 : 6:30:00 (Myanmar Time)
|
||||
"THA", // 12 : 7:00:00 (Thailand Standard Time)
|
||||
"CST", // 13 : 8:00:00 (China Standard Time, Australian Western Standard Time)
|
||||
"ACWS", // 14 : 8:45:00 (Australian Central Western Standard Time)
|
||||
"JST", // 15 : 9:00:00 (Japan Standard Time, Korea Standard Time)
|
||||
"ACST", // 16 : 9:30:00 (Australian Central Standard Time)
|
||||
"AEST", // 17 : 10:00:00 (Australian Eastern Standard Time)
|
||||
"LHST", // 18 : 10:30:00 (Lord Howe Standard Time)
|
||||
"SBT", // 19 : 11:00:00 (Solomon Islands Time)
|
||||
"NZST", // 20 : 12:00:00 (New Zealand Standard Time)
|
||||
"CHAS", // 21 : 12:45:00 (Chatham Standard Time)
|
||||
"TOT", // 22 : 13:00:00 (Tonga Time)
|
||||
"CHAD", // 23 : 13:45:00 (Chatham Daylight Time)
|
||||
"LINT", // 24 : 14:00:00 (Line Islands Time)
|
||||
"BIT", // 25 : -12:00:00 (Baker Island Time)
|
||||
"NUT", // 26 : -11:00:00 (Niue Time)
|
||||
"HST", // 27 : -10:00:00 (Hawaii-Aleutian Standard Time)
|
||||
"MART", // 28 : -9:30:00 (Marquesas Islands Time)
|
||||
"AKST", // 29 : -9:00:00 (Alaska Standard Time)
|
||||
"PST", // 30 : -8:00:00 (Pacific Standard Time)
|
||||
"MST", // 31 : -7:00:00 (Mountain Standard Time)
|
||||
"CST", // 32 : -6:00:00 (Central Standard Time)
|
||||
"EST", // 33 : -5:00:00 (Eastern Standard Time)
|
||||
"VET", // 34 : -4:30:00 (Venezuelan Standard Time)
|
||||
"AST", // 35 : -4:00:00 (Atlantic Standard Time)
|
||||
"NST", // 36 : -3:30:00 (Newfoundland Standard Time)
|
||||
"BRT", // 37 : -3:00:00 (Brasilia Time)
|
||||
"NDT", // 38 : -2:30:00 (Newfoundland Daylight Time)
|
||||
"FNT", // 39 : -2:00:00 (Fernando de Noronha Time)
|
||||
"AZOT", // 40 : -1:00:00 (Azores Standard Time)
|
||||
};
|
||||
|
||||
/* Modulo function */
|
||||
static inline unsigned int mod(int a, int b)
|
||||
{
|
||||
int r = a % b;
|
||||
return r < 0 ? r + b : r;
|
||||
}
|
||||
|
||||
/* Find the next selected time zone */
|
||||
static inline uint8_t find_selected_zone(world_clock2_state_t *state, int direction)
|
||||
{
|
||||
uint8_t i = state->current_zone;
|
||||
|
||||
do {
|
||||
i = mod(i + direction, NUM_TIME_ZONES);
|
||||
/* Could not find a selected zone. Return UTC */
|
||||
if (i == state->current_zone) {
|
||||
return 0;
|
||||
}
|
||||
} while (!state->zones[i].selected);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
/* Beep when zone is enabled. An octave up */
|
||||
static void beep_enable() {
|
||||
watch_buzzer_play_note(BUZZER_NOTE_G7, 50);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C8, 75);
|
||||
}
|
||||
|
||||
/* Beep when zone id disable. An octave down */
|
||||
static void beep_disable() {
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_REST, 75);
|
||||
watch_buzzer_play_note(BUZZER_NOTE_G7, 75);
|
||||
}
|
||||
|
||||
void world_clock2_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(world_clock2_state_t));
|
||||
memset(*context_ptr, 0, sizeof(world_clock2_state_t));
|
||||
|
||||
/* Start in settings mode */
|
||||
world_clock2_state_t *state = (world_clock2_state_t *) * context_ptr;
|
||||
state->current_mode = WORLD_CLOCK2_MODE_SETTINGS;
|
||||
}
|
||||
}
|
||||
|
||||
void world_clock2_face_activate(movement_settings_t *settings, void *context)
|
||||
{
|
||||
(void) settings;
|
||||
world_clock2_state_t *state = (world_clock2_state_t *) context;
|
||||
|
||||
if (watch_tick_animation_is_running())
|
||||
watch_stop_tick_animation();
|
||||
|
||||
switch (state->current_mode) {
|
||||
case WORLD_CLOCK2_MODE_DISPLAY:
|
||||
/* Normal tick frequency */
|
||||
movement_request_tick_frequency(1);
|
||||
break;
|
||||
case WORLD_CLOCK2_MODE_SETTINGS:
|
||||
/* Faster frequency for blinking effect */
|
||||
movement_request_tick_frequency(4);
|
||||
break;
|
||||
}
|
||||
refresh_face = true;
|
||||
}
|
||||
|
||||
static bool mode_display(movement_event_t event, movement_settings_t *settings, world_clock2_state_t *state)
|
||||
{
|
||||
char buf[11];
|
||||
uint8_t pos;
|
||||
|
||||
uint32_t timestamp;
|
||||
uint32_t previous_date_time;
|
||||
watch_date_time date_time;
|
||||
|
||||
switch (event.event_type) {
|
||||
case EVENT_ACTIVATE:
|
||||
case EVENT_TICK:
|
||||
case EVENT_LOW_ENERGY_UPDATE:
|
||||
/* Update indicators and colon on refresh */
|
||||
if (refresh_face) {
|
||||
watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
|
||||
watch_set_colon();
|
||||
if (settings->bit.clock_mode_24h)
|
||||
watch_set_indicator(WATCH_INDICATOR_24H);
|
||||
|
||||
state->previous_date_time = REFRESH_TIME;
|
||||
refresh_face = false;
|
||||
}
|
||||
|
||||
/* Determine current time at time zone and store date/time */
|
||||
date_time = watch_rtc_get_date_time();
|
||||
timestamp = watch_utility_date_time_to_unix_time(date_time, movement_timezone_offsets[settings->bit.time_zone] * 60);
|
||||
date_time = watch_utility_date_time_from_unix_time(timestamp, movement_timezone_offsets[state->current_zone] * 60);
|
||||
previous_date_time = state->previous_date_time;
|
||||
state->previous_date_time = date_time.reg;
|
||||
|
||||
if ((date_time.reg >> 6) == (previous_date_time >> 6) && event.event_type != EVENT_LOW_ENERGY_UPDATE) {
|
||||
/* Everything before seconds is the same, don't waste cycles setting those segments. */
|
||||
pos = 8;
|
||||
sprintf(buf, "%02d", date_time.unit.second);
|
||||
} else if ((date_time.reg >> 12) == (previous_date_time >> 12) && event.event_type != EVENT_LOW_ENERGY_UPDATE) {
|
||||
/* Everything before minutes is the same. */
|
||||
pos = 6;
|
||||
sprintf(buf, "%02d%02d", date_time.unit.minute, date_time.unit.second);
|
||||
} else {
|
||||
/* Other stuff changed; Let's do it all. */
|
||||
if (!settings->bit.clock_mode_24h) {
|
||||
/* If we are in 12 hour mode, do some cleanup. */
|
||||
if (date_time.unit.hour < 12) {
|
||||
watch_clear_indicator(WATCH_INDICATOR_PM);
|
||||
} else {
|
||||
watch_set_indicator(WATCH_INDICATOR_PM);
|
||||
}
|
||||
date_time.unit.hour %= 12;
|
||||
if (date_time.unit.hour == 0)
|
||||
date_time.unit.hour = 12;
|
||||
}
|
||||
|
||||
pos = 0;
|
||||
if (event.event_type == EVENT_LOW_ENERGY_UPDATE) {
|
||||
if (!watch_tick_animation_is_running())
|
||||
watch_start_tick_animation(500);
|
||||
|
||||
sprintf(buf, "%.2s%2d%2d%02d ",
|
||||
zone_names[state->current_zone],
|
||||
date_time.unit.day,
|
||||
date_time.unit.hour,
|
||||
date_time.unit.minute);
|
||||
} else {
|
||||
sprintf(buf, "%.2s%2d%2d%02d%02d",
|
||||
zone_names[state->current_zone],
|
||||
date_time.unit.day,
|
||||
date_time.unit.hour,
|
||||
date_time.unit.minute,
|
||||
date_time.unit.second);
|
||||
}
|
||||
}
|
||||
watch_display_string(buf, pos);
|
||||
break;
|
||||
case EVENT_ALARM_BUTTON_UP:
|
||||
state->current_zone = find_selected_zone(state, FORWARD);
|
||||
state->previous_date_time = REFRESH_TIME;
|
||||
break;
|
||||
case EVENT_LIGHT_BUTTON_DOWN:
|
||||
/* Do nothing. */
|
||||
break;
|
||||
case EVENT_LIGHT_BUTTON_UP:
|
||||
state->current_zone = find_selected_zone(state, BACKWARD);
|
||||
state->previous_date_time = REFRESH_TIME;
|
||||
break;
|
||||
case EVENT_LIGHT_LONG_PRESS:
|
||||
movement_illuminate_led();
|
||||
break;
|
||||
case EVENT_ALARM_LONG_PRESS:
|
||||
/* Switch to settings mode */
|
||||
state->current_mode = WORLD_CLOCK2_MODE_SETTINGS;
|
||||
refresh_face = true;
|
||||
movement_request_tick_frequency(1);
|
||||
|
||||
if (settings->bit.button_should_sound)
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
|
||||
break;
|
||||
case EVENT_MODE_BUTTON_UP:
|
||||
/* Reset frequency and move to next face */
|
||||
movement_request_tick_frequency(1);
|
||||
movement_move_to_next_face();
|
||||
break;
|
||||
default:
|
||||
return movement_default_loop_handler(event, settings);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool mode_settings(movement_event_t event, movement_settings_t *settings, world_clock2_state_t *state)
|
||||
{
|
||||
char buf[11];
|
||||
int8_t hours, minutes;
|
||||
uint8_t zone;
|
||||
div_t result;
|
||||
|
||||
switch (event.event_type) {
|
||||
case EVENT_ACTIVATE:
|
||||
case EVENT_TICK:
|
||||
case EVENT_LOW_ENERGY_UPDATE:
|
||||
/* Update indicator and colon on refresh */
|
||||
if (refresh_face) {
|
||||
watch_clear_colon();
|
||||
watch_clear_indicator(WATCH_INDICATOR_24H);
|
||||
watch_clear_indicator(WATCH_INDICATOR_PM);
|
||||
refresh_face = false;
|
||||
}
|
||||
result = div(movement_timezone_offsets[state->current_zone], 60);
|
||||
hours = result.quot;
|
||||
minutes = result.rem;
|
||||
|
||||
/*
|
||||
* Display time zone. The range of the parameters is reduced
|
||||
* to avoid accidentally overflowing the buffer and to suppress
|
||||
* corresponding compiler warnings.
|
||||
*/
|
||||
sprintf(buf, "%.2s%2d %c%02d%02d",
|
||||
zone_names[state->current_zone],
|
||||
state->current_zone % 100,
|
||||
hours < 0 ? '-' : '+',
|
||||
abs(hours) % 24,
|
||||
abs(minutes) % 60);
|
||||
|
||||
/* Let the zone number blink */
|
||||
if (event.subsecond % 2)
|
||||
buf[2] = buf[3] = ' ';
|
||||
|
||||
if (state->zones[state->current_zone].selected)
|
||||
watch_set_indicator(WATCH_INDICATOR_SIGNAL);
|
||||
else
|
||||
watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
|
||||
|
||||
watch_display_string(buf, 0);
|
||||
break;
|
||||
case EVENT_ALARM_BUTTON_UP:
|
||||
state->current_zone = mod(state->current_zone + FORWARD, NUM_TIME_ZONES);
|
||||
break;
|
||||
case EVENT_LIGHT_BUTTON_UP:
|
||||
state->current_zone = mod(state->current_zone + BACKWARD, NUM_TIME_ZONES);
|
||||
break;
|
||||
case EVENT_LIGHT_BUTTON_DOWN:
|
||||
/* Do nothing */
|
||||
break;
|
||||
case EVENT_ALARM_LONG_PRESS:
|
||||
/* Find next selected zone */
|
||||
if (!state->zones[state->current_zone].selected)
|
||||
state->current_zone = find_selected_zone(state, FORWARD);
|
||||
|
||||
/* Switch to display mode */
|
||||
state->current_mode = WORLD_CLOCK2_MODE_DISPLAY;
|
||||
refresh_face = true;
|
||||
movement_request_tick_frequency(1);
|
||||
|
||||
if (settings->bit.button_should_sound)
|
||||
watch_buzzer_play_note(BUZZER_NOTE_C8, 50);
|
||||
break;
|
||||
case EVENT_LIGHT_LONG_PRESS:
|
||||
/* Toggle selection of current zone */
|
||||
zone = state->current_zone;
|
||||
state->zones[zone].selected = !state->zones[zone].selected;
|
||||
|
||||
if (settings->bit.button_should_sound) {
|
||||
if (state->zones[zone].selected) {
|
||||
beep_enable();
|
||||
} else {
|
||||
beep_disable();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EVENT_MODE_BUTTON_UP:
|
||||
/* Reset frequency and move to next face */
|
||||
movement_request_tick_frequency(1);
|
||||
movement_move_to_next_face();
|
||||
break;
|
||||
default:
|
||||
return movement_default_loop_handler(event, settings);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool world_clock2_face_loop(movement_event_t event, movement_settings_t *settings, void *context)
|
||||
{
|
||||
world_clock2_state_t *state = (world_clock2_state_t *) context;
|
||||
switch (state->current_mode) {
|
||||
case WORLD_CLOCK2_MODE_DISPLAY:
|
||||
return mode_display(event, settings, state);
|
||||
case WORLD_CLOCK2_MODE_SETTINGS:
|
||||
return mode_settings(event, settings, state);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void world_clock2_face_resign(movement_settings_t *settings, void *context)
|
||||
{
|
||||
(void) settings;
|
||||
(void) context;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue