mohan-bee/fitness-band-sensor-flex
A flexible dual-sensor PCB integrating a MAX30102 optical PPG/heart-rate sensor and TMP117 digital skin-temperature sensor, with I²C, power regulation, decoupling capacitors, interrupt pull-up, flex-tail connector, test points, and mechanical stiffeners/bend support.
- Version
- 0.0.1
- License
- unset
- Stars
- 0
imports/MAX30102.tsx
import type { ChipProps } from "@tscircuit/props"
const pinLabels = {
pin1: ["N_C_4"],
pin2: ["SCL"],
pin3: ["SDA"],
pin4: ["PGND"],
// ADI MAX30102 Rev 1, page 8: these are NC, not exposed LED drivers.
pin5: ["NC5"],
pin6: ["NC6"],
pin7: ["N_C_3"],
pin8: ["N_C_1"],
pin9: ["VLED_POS1"],
pin10: ["VLED_POS2"],
pin11: ["VDD"],
pin12: ["GND"],
pin13: ["N_INT"],
pin14: ["N_C_2"]
} as const
const pinAttributes = {
pin4: {requiresGround: true},
pin11: {requiresPower: true},
pin12: {requiresGround: true}
} as const
export const MAX30102 = (props: ChipProps<typeof pinLabels>) => {
return (
<chip
pinLabels={pinLabels}
pinAttributes={pinAttributes}
supplierPartNumbers={{
"jlcpcb": [
"C2839431"
]
}}
manufacturerPartNumber="MAX30102EFD+T"
footprint={<footprint>
<smtpad portHints={["pin8"]} pcbX="1.200023mm" pcbY="-2.400046mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin9"]} pcbX="1.200023mm" pcbY="-1.599946mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin10"]} pcbX="1.200023mm" pcbY="-0.799846mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin11"]} pcbX="1.200023mm" pcbY="0mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin12"]} pcbX="1.200023mm" pcbY="0.8001mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin13"]} pcbX="1.200023mm" pcbY="1.6002mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin14"]} pcbX="1.200023mm" pcbY="2.400046mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin7"]} pcbX="-1.200023mm" pcbY="-2.399792mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin6"]} pcbX="-1.200023mm" pcbY="-1.599946mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin5"]} pcbX="-1.200023mm" pcbY="-0.799846mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin4"]} pcbX="-1.200023mm" pcbY="0mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin3"]} pcbX="-1.200023mm" pcbY="0.8001mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="-1.200023mm" pcbY="1.599946mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<smtpad portHints={["pin1"]} pcbX="-1.200023mm" pcbY="2.400046mm" width="0.7500112mm" height="0.350012mm" shape="rect" />
<silkscreenpath route={[{"x":-1.7115790000000288,"y":2.8417011999999886},{"x":-1.7115790000000288,"y":-2.858312800000135},{"x":1.6882109999999102,"y":-2.858312800000135},{"x":1.6882109999999102,"y":2.8417011999999886},{"x":-1.7115790000000288,"y":2.8417011999999886}]} />
<silkscreenpath route={[{"x":-0.7115810000000238,"y":2.0166075999999293},{"x":0.6882130000000188,"y":2.0166075999999293},{"x":0.6882130000000188,"y":-0.5833364000001211},{"x":-0.7115810000000238,"y":-0.5833364000001211},{"x":-0.7115810000000238,"y":2.0166075999999293}]} />
<silkscreenpath route={[{"x":-0.7115810000000238,"y":-1.1833098000000746},{"x":0.6882130000000188,"y":-1.1833098000000746},{"x":0.6882130000000188,"y":-2.0834604000000354},{"x":-0.7115810000000238,"y":-2.0834604000000354},{"x":-0.7115810000000238,"y":-1.1833098000000746}]} />
<silkscreencircle pcbX="-2.158873mm" pcbY="2.413mm" radius="0.119888mm" />
<silkscreentext text="{NAME}" pcbX="-0.287909mm" pcbY="3.832862mm" anchorAlignment="center" fontSize="1mm" />
<fabricationnotepath route={[{"x":-0.7115810000000238,"y":2.016607600000043},{"x":-0.7115810000000238,"y":-0.5833872000000611},{"x":0.688416200000006,"y":-0.5833872000000611},{"x":0.688416200000006,"y":2.016607600000043},{"x":-0.7115810000000238,"y":2.016607600000043}]} strokeWidth="0mm" isFilled hasStroke={false} />
<fabricationnotepath route={[{"x":-0.7115810000000238,"y":-1.1833860000000413},{"x":-0.7115810000000238,"y":-2.0833842000000686},{"x":0.688416200000006,"y":-2.0833842000000686},{"x":0.688416200000006,"y":-1.1833860000000413},{"x":-0.7115810000000238,"y":-1.1833860000000413}]} strokeWidth="0mm" isFilled hasStroke={false} />
<courtyardoutline outline={[{"x":-1.9000094000000445,"y":3.050095999999826},{"x":1.899983999999904,"y":3.050095999999826},{"x":1.899983999999904,"y":-3.049892800000066},{"x":-1.9000094000000445,"y":-3.049892800000066},{"x":-1.9000094000000445,"y":3.050095999999826}]} />
</footprint>}
cadModel={{
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2839431.obj?uuid=36726d9fedca45ea8cb940092abc41dc",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2839431.step?uuid=36726d9fedca45ea8cb940092abc41dc",
pcbRotationOffset: 0,
modelOriginPosition: { x: 0.000012700000070253736, y: -0.0001015999999935957, z: -0.31 },
}}
{...props}
/>
)
}