gokul/flex-led-wristband
A flexible, rechargeable touch wristband PCB with MCP73831 Li-ion charging, switched 3.0 V regulation, ATtiny402 control, TTP223 capacitive touch sensing, and six charlieplexed red LEDs plus power/charge indicators.
- Version
- 0.0.3
- License
- unset
- Stars
- 0
lib/PowerSwitch.tsx
import { type ChipProps } from "tscircuit";
export const PowerSwitch = (props: ChipProps) => (
<chip
footprint={
<footprint>
<courtyardoutline
outline={[
{ x: -5, y: 2.25 },
{ x: -5, y: -2.25 },
{ x: -3.25, y: -2.25 },
{ x: -3.25, y: -2.75 },
{ x: -2.5, y: -2.75 },
{ x: -2.5, y: -4.25 },
{ x: 2.5, y: -4.25 },
{ x: 2.5, y: -2.5 },
{ x: 3.25, y: -2.5 },
{ x: 3.25, y: -2.25 },
{ x: 5, y: -2.25 },
{ x: 5, y: 2.25 },
{ x: 3.5, y: 2.25 },
{ x: 3.5, y: 4.5 },
{ x: -3.5, y: 4.5 },
{ x: -3.5, y: 2.25 },
]}
layer="top"
/>
<hole pcbX="-3.4mm" pcbY="0mm" diameter="0.9mm" />
<hole pcbX="3.4mm" pcbY="0mm" diameter="0.9mm" />
<smtpad
portHints={["1"]}
pcbX="-2.5mm"
pcbY="2.75mm"
layer="top"
width="1.2mm"
height="2.5mm"
shape="rect"
/>
<smtpad
portHints={["2"]}
pcbX="0mm"
pcbY="2.75mm"
layer="top"
width="1.2mm"
height="2.5mm"
shape="rect"
/>
<smtpad
portHints={["3"]}
pcbX="2.5mm"
pcbY="2.75mm"
layer="top"
width="1.2mm"
height="2.5mm"
shape="rect"
/>
<silkscreenpath
route={[
{ x: 3.2, y: 1.9 },
{ x: 4.6, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 4.6, y: 1.9 },
{ x: 4.6, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -4.6, y: -1.9 },
{ x: -4.6, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -4.6, y: 1.9 },
{ x: -3.2, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 1.8, y: 1.9 },
{ x: 0.7, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 0.7, y: 1.9 },
{ x: 0.7, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -0.7, y: 1.9 },
{ x: -1.8, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -1.8, y: 1.9 },
{ x: -1.8, y: 1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 4.6, y: -1.9 },
{ x: 2.9, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2.9, y: -1.9 },
{ x: 2.9, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2.9, y: -2.2 },
{ x: 2.1, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2.1, y: -2.2 },
{ x: 2.1, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2.1, y: -1.9 },
{ x: 0.4, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 0.4, y: -1.9 },
{ x: 0.4, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 0.4, y: -2.2 },
{ x: -0.4, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -0.4, y: -2.2 },
{ x: -0.4, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -0.4, y: -1.9 },
{ x: -2.1, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2.1, y: -1.9 },
{ x: -2.1, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2.1, y: -2.2 },
{ x: -2.9, y: -2.2 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2.9, y: -2.2 },
{ x: -2.9, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2.9, y: -1.9 },
{ x: -4.6, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -4.6, y: -1.9 },
{ x: -4.6, y: -1.9 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2, y: -3.8 },
{ x: -2, y: -3.3 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2, y: -3.3 },
{ x: -2, y: -3.3 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2, y: -3.8 },
{ x: -1.5, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -1.5, y: -3.8 },
{ x: -1.5, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2, y: -3.8 },
{ x: 1.5, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 1.5, y: -3.8 },
{ x: 1.5, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2, y: -3.8 },
{ x: 2, y: -3.3 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2, y: -3.3 },
{ x: 2, y: -3.3 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2, y: -3 },
{ x: 2, y: -2.5 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 2, y: -2.5 },
{ x: 2, y: -2.5 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2, y: -3 },
{ x: -2, y: -2.5 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -2, y: -2.5 },
{ x: -2, y: -2.5 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -1.2, y: -3.8 },
{ x: -0.7, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -0.7, y: -3.8 },
{ x: -0.7, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 1.2, y: -3.8 },
{ x: 0.7, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 0.7, y: -3.8 },
{ x: 0.7, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: 0.4, y: -3.8 },
{ x: -0.4, y: -3.8 },
]}
strokeWidth={0.12}
/>
<silkscreenpath
route={[
{ x: -0.4, y: -3.8 },
{ x: -0.4, y: -3.8 },
]}
strokeWidth={0.12}
/>
<fabricationnotepath
route={[
{ x: -4.5, y: 1.8 },
{ x: 4.5, y: 1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 4.5, y: 1.8 },
{ x: 4.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 4.5, y: -1.8 },
{ x: -4.4, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -4.4, y: -1.8 },
{ x: -4.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -4.5, y: -1.8 },
{ x: -4.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -4.5, y: 1.8 },
{ x: -4.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -4.5, y: -1.8 },
{ x: -4.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -1.5, y: -1.8 },
{ x: -1.5, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 0.3, y: -1.8 },
{ x: 0.3, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 0.3, y: -2.1 },
{ x: -0.3, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -0.3, y: -2.1 },
{ x: -0.3, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -0.3, y: -1.8 },
{ x: -0.3, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2.2, y: -1.8 },
{ x: -2.2, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2.2, y: -2.1 },
{ x: -2.8, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2.8, y: -2.1 },
{ x: -2.8, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2.8, y: -1.8 },
{ x: -2.8, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 2.2, y: -1.8 },
{ x: 2.2, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 2.2, y: -2.1 },
{ x: 2.8, y: -2.1 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 2.8, y: -2.1 },
{ x: 2.8, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: 2.8, y: -1.8 },
{ x: 2.8, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -0.5, y: -1.8 },
{ x: -0.5, y: -3.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -0.5, y: -3.8 },
{ x: -2, y: -3.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2, y: -3.8 },
{ x: -2, y: -1.8 },
]}
strokeWidth={0.1}
/>
<fabricationnotepath
route={[
{ x: -2, y: -1.8 },
{ x: -2, y: -1.8 },
]}
strokeWidth={0.1}
/>
</footprint>
}
{...props}
/>
);