rushabhcodes/tetris

This code defines various electronic component models—including a AAA battery holder, ATtiny85 microcontroller, switch, buzzer, display, and resistors—as hardware modules with detailed footprints, pin configurations, CAD models, and physical specifications for use in circuit design.

Version
1.0.2
License
MIT
Stars
2

index.circuit.tsx

PCBPCB preview for index.circuit.tsx
SchematicSchematic preview for index.circuit.tsx
import { AAA_BAT_029_K01 } from "imports/AAA_BAT_029_K01";
import { ATTINY85 } from "imports/ATTINY85";
import { BUTTON } from "imports/BUTTON";
import { BUZZER } from "imports/BUZZER";
import { DISPLAY } from "imports/DISPLAY";
import { RES_10_K } from "imports/RES_10_K";
import { RES_1_K } from "imports/RES_1_K";
import { RES_2_2_K } from "imports/RES_2_2_K";
import { SWITCH } from "imports/SWITCH";
import { sel } from "tscircuit";

export default () => (
	<board
		height="53.08mm"
		width="31.67mm"
		minViaPadDiameter={2.5}
		minViaHoleDiameter={1}
	>
		<DISPLAY
			name="DISPLAY"
			pcbX="1mm"
			pcbY="11mm"
			pcbRotation={90}
			schX="-3.4mm"
			schY="-1mm"
			connections={{
				pin1: sel.net.GND,
				pin2: sel.net.VCC,
				pin3: sel.net.SCL,
				pin4: sel.net.SDA,
			}}
		/>
		<ATTINY85
			name="U1"
			pcbX="10mm"
			pcbY="-13.5mm"
			pcbRotation={90}
			schX="0mm"
			schY="0mm"
			connections={{
				pin2: sel.net.SDA,
				pin3: sel.net.SCL,
				pin4: sel.net.GND,
				pin5: "DROP.pin2",
				pin8: sel.net.VCC,
			}}
		/>
		<RES_2_2_K
			name="R1"
			pcbX="8mm"
			pcbY="20mm"
			layer={"bottom"}
			schX="3.9mm"
			schY="3mm"
			connections={{
				pin1: "LEFT.pin4",
				pin2: sel.net.VCC,
			}}
		/>
		<RES_10_K
			name="R2"
			pcbX="-6mm"
			pcbY="20mm"
			layer={"bottom"}
			pcbRotation={180}
			schX="6.9mm"
			schY="-2mm"
			connections={{
				pin1: sel.net.GND,
				pin2: "DROP.pin2",
			}}
		/>
		<RES_10_K
			name="R4"
			pcbX="-6mm"
			pcbY="-7mm"
			layer={"bottom"}
			schX="1.9mm"
			schY="-2mm"
			connections={{
				pin1: sel.net.GND,
				pin2: "ROTATE.pin2",
			}}
		/>
		<RES_1_K
			name="R3"
			pcbX="8mm"
			pcbY="-7mm"
			layer={"bottom"}
			schX="5.9mm"
			schY="3mm"
			connections={{
				pin1: "RIGHT.pin4",
				pin2: sel.net.VCC,
			}}
		/>
		<BUZZER
			name="BUZZER"
			pcbX="-10mm"
			pcbY="-15mm"
			pcbRotation={-90}
			schX="1.2mm"
			schY="-2mm"
			connections={{
				pin2: sel.U1.pin6,
				pin1: sel.net.GND,
			}}
		/>
		<BUTTON
			name="DROP"
			pcbX="0mm"
			pcbY="-15mm"
			pcbRotation={90}
			schX="8mm"
			schY="1mm"
			connections={{
				pin2: sel.U1.pin5,
				pin4: sel.net.VCC,
			}}
		/>
		<BUTTON
			name="LEFT"
			pcbX="-10mm"
			pcbY="-23mm"
			schX="4mm"
			schY="1mm"
			connections={{
				pin2: sel.U1.pin7,
				pin4: "R1.pin1",
			}}
		/>
		<BUTTON
			name="ROTATE"
			pcbX="0mm"
			pcbY="-23mm"
			schX="2mm"
			schY="1mm"
			connections={{
				pin2: sel.U1.pin7,
				pin4: sel.net.VCC,
			}}
		/>
		<BUTTON
			name="RIGHT"
			displayName="RIGHT"
			pcbX="10mm"
			pcbY="-23mm"
			pcbRotation={180}
			schX="6mm"
			schY="1mm"
			connections={{
				pin2: sel.U1.pin7,
				pin4: "R3.pin1",
			}}
		/>

		<AAA_BAT_029_K01
			name="BATTERY_HOLDER"
			pcbX="2.5mm"
			pcbY="5mm"
			layer={"bottom"}
			schX="-4mm"
			schY="-4mm"
			connections={{
				pin1: "POWER_SWITCH.pin2",
				pin2: sel.net.GND,
			}}
		/>
		<SWITCH
			name="POWER_SWITCH"
			pcbX="-13mm"
			pcbY="18mm"
			layer={"bottom"}
			pcbRotation={90}
			schX="-1mm"
			schY="-2mm"
			connections={{
				pin1: sel.net.VCC,
				pin2: "BATTERY_HOLDER.pin1",
			}}
		/>
	</board>
);