mohan-bee/flight-controller-v2

A 64 mm STM32F405 flight-controller PCB with ICM-42688 IMU, SPI flash, USB-C/ESD, battery buck and 3.3 V regulation, four motor outputs, service I/O, and PETG standoff mounting hardware.

Version
0.1.0
License
ISC
Stars
0

imports/ICM_42688_P.tsx

import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
  pin1: ["AP_SDO","AP_AD0"],
  pin2: ["RESV1"],
  pin3: ["RESV2"],
  pin4: ["INT1","INT"],
  pin5: ["VDDIO"],
  pin6: ["GND"],
  pin7: ["RESV3"],
  pin8: ["VDD"],
  pin9: ["INT2","FSYNC","CLKIN"],
  pin10: ["RESV4"],
  pin11: ["RESV5"],
  pin12: ["AP_CS"],
  pin13: ["AP_SCL","AP_SCLK"],
  pin14: ["AP_SDA","AP_SDIO","AP_SDI"]
} as const

const pinAttributes = {
  pin6: {requiresGround: true, mustBeConnected: true},
  pin8: {requiresPower: true, mustBeConnected: true, shouldHaveDecouplingCapacitor: true},
  pin1: {isInput: true, isOutput: true, isBidirectional: true, capabilities: ["spi_miso"]},
  pin2: {isPassive: true},
  pin3: {isPassive: true},
  pin4: {isOutput: true, canUseOpenDrain: true, canUsePushPull: true},
  pin5: {requiresPower: true, mustBeConnected: true, shouldHaveDecouplingCapacitor: true},
  pin7: {requiresGround: true, mustBeConnected: true},
  pin9: {isInput: true, isOutput: true, isBidirectional: true, canUseOpenDrain: true, canUsePushPull: true},
  pin10: {isPassive: true},
  pin11: {isPassive: true},
  pin12: {isInput: true, capabilities: ["spi_cs"]},
  pin13: {isInput: true, capabilities: ["i2c_scl","spi_sck"]},
  pin14: {isInput: true, isOutput: true, isBidirectional: true, capabilities: ["i2c_sda","spi_mosi"]}
} satisfies NonNullable<ChipProps["pinAttributes"]>

export const ICM_42688_P = (props: ChipProps<typeof pinLabels>) => {
  return (
    <chip
      pinLabels={pinLabels}
      pinAttributes={pinAttributes}
      supplierPartNumbers={{
  "jlcpcb": [
    "C1850418"
  ]
}}
      manufacturerPartNumber="ICM-42688-P"
      footprint={<footprint>
        <smtpad portHints={["pin1"]} pcbX="-1.261999mm" pcbY="0.750062mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="-1.261999mm" pcbY="0.249936mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin3"]} pcbX="-1.261999mm" pcbY="-0.249936mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin4"]} pcbX="-1.261999mm" pcbY="-0.750062mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin5"]} pcbX="-0.499999mm" pcbY="-1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<smtpad portHints={["pin6"]} pcbX="-0.000127mm" pcbY="-1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<smtpad portHints={["pin7"]} pcbX="0.499999mm" pcbY="-1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<smtpad portHints={["pin8"]} pcbX="1.261999mm" pcbY="-0.750062mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin9"]} pcbX="1.261999mm" pcbY="-0.249936mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin10"]} pcbX="1.261999mm" pcbY="0.249936mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin11"]} pcbX="1.261999mm" pcbY="0.750062mm" width="0.675005mm" height="0.2800096mm" shape="rect" />
<smtpad portHints={["pin12"]} pcbX="0.499999mm" pcbY="1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<smtpad portHints={["pin13"]} pcbX="-0.000127mm" pcbY="1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<smtpad portHints={["pin14"]} pcbX="-0.499999mm" pcbY="1.012444mm" width="0.2800096mm" height="0.675005mm" shape="rect" />
<silkscreenpath route={[{"x":0.8303767999999536,"y":1.326210200000105},{"x":1.576069999999845,"y":1.326210200000105},{"x":1.576069999999845,"y":1.0804906000000756}]} />
<silkscreenpath route={[{"x":0.8303767999999536,"y":-1.326210200000105},{"x":1.576069999999845,"y":-1.326210200000105},{"x":1.576069999999845,"y":-1.0804906000000756}]} />
<silkscreenpath route={[{"x":-0.8306307999999945,"y":1.326210200000105},{"x":-1.5763240000001133,"y":1.326210200000105},{"x":-1.5763240000001133,"y":1.0804906000000756}]} />
<silkscreenpath route={[{"x":-0.8306307999999945,"y":-1.326210200000105},{"x":-1.5763240000001133,"y":-1.326210200000105},{"x":-1.5763240000001133,"y":-1.0804906000000756}]} />
<silkscreencircle pcbX="-1.905127mm" pcbY="0.762mm" radius="0.07493mm" />
<silkscreentext text="{NAME}" pcbX="-0.190627mm" pcbY="2.3462mm" anchorAlignment="center" fontSize="1mm" />
<courtyardoutline outline={[{"x":-1.8495015000000876,"y":1.599946500000101},{"x":1.849501499999974,"y":1.599946500000101},{"x":1.849501499999974,"y":-1.5999464999999873},{"x":-1.8495015000000876,"y":-1.5999464999999873},{"x":-1.8495015000000876,"y":1.599946500000101}]} />
      </footprint>}
      cadModel={{
        objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1850418.obj?uuid=f43373e142124ec98babb70d58d97864",
        stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1850418.step?uuid=f43373e142124ec98babb70d58d97864",
        pcbRotationOffset: 0,
        modelOriginPosition: { x: 0.00012700000002041634, y: -0.000012700000070253736, z: 0 },
      }}
      {...props}
    />
  )
}