diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/README.md b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/README.md
new file mode 100644
index 00000000..7ff8e859
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/README.md
@@ -0,0 +1,5 @@
+# SparkFun Tristimulus Color Sensor - OPT4048DTSR
+
+For more information about this board, visit the official SparkFun product page:
+
+[https://www.sparkfun.com/sparkfun-tristimulus-color-sensor-opt4048dtsr-qwiic.html](https://www.sparkfun.com/sparkfun-tristimulus-color-sensor-opt4048dtsr-qwiic.html)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit.tsx
new file mode 100644
index 00000000..edddf1ee
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit.tsx
@@ -0,0 +1,16 @@
+import manualEdits from "./manual-edits.json"
+import Jumpers from "./jumpers"
+import Sensor from "./color-sensor"
+import Address from "./address"
+import Connectors from "./connectors"
+import Holes from "./holes"
+
+export default () => (
+
+
+
+
+
+
+
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.diff.png b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.diff.png
new file mode 100644
index 00000000..9a36a792
Binary files /dev/null and b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.diff.png differ
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.snap.svg b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.snap.svg
new file mode 100644
index 00000000..834a712a
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-pcb.snap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.diff.png b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.diff.png
new file mode 100644
index 00000000..007bda50
Binary files /dev/null and b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.diff.png differ
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.snap.svg b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.snap.svg
new file mode 100644
index 00000000..02eef560
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/__snapshots__/SparkFun Tristimulus Color Sensor - OPT4048DTSR.circuit-schematic.snap.svg
@@ -0,0 +1,132 @@
+
\ No newline at end of file
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/address.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/address.tsx
new file mode 100644
index 00000000..384bacd0
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/address.tsx
@@ -0,0 +1,58 @@
+export default ({ x = 0, y = 0 }: DisplacementProps) => (
+
+
+
+
+
+
+
+
+
+ .pin2", ".OX45 > .pin2", ".OX46 > .pin2"]}
+ />
+
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/color-sensor.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/color-sensor.tsx
new file mode 100644
index 00000000..ad96de45
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/color-sensor.tsx
@@ -0,0 +1,91 @@
+import type { ChipProps } from "@tscircuit/props"
+import { sel } from "@tscircuit/core"
+
+const pinLabels: Record<`pin${number}`, string> = {
+ pin1: "VDD",
+ pin2: "ADDR",
+ pin3: "NC",
+ pin4: "GND",
+ pin5: "SCL",
+ pin6: "NC",
+ pin7: "INT",
+ pin8: "SDA",
+}
+
+const OPT4048DTSR = (props: ChipProps) => (
+
+)
+export default ({ x = 0, y = 0 }: DisplacementProps) => (
+
+
+
+
+
+
+
+
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/connectors.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/connectors.tsx
new file mode 100644
index 00000000..a30ccd3c
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/connectors.tsx
@@ -0,0 +1,69 @@
+const pinLabelsJ2: Record<`pin${number}`, string> = {
+ pin4: "SCL",
+ pin3: "SDA",
+ pin2: "VCC",
+ pin1: "GND",
+}
+
+export default ({ x = 0, y = 0 }: DisplacementProps) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .pin1", ".J2 > .pin1"]}
+ anchorSide="top"
+ />
+ .pin2", ".J2 > .pin2"]}
+ anchorSide="bottom"
+ />
+
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/holes.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/holes.tsx
new file mode 100644
index 00000000..092dd588
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/holes.tsx
@@ -0,0 +1,8 @@
+export default () => (
+ <>
+
+
+
+
+ >
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/index.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/index.tsx
new file mode 100644
index 00000000..4b8fb270
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/index.tsx
@@ -0,0 +1,17 @@
+import manualEdits from "./manual-edits.json"
+import Jumpers from "./jumpers"
+import Sensor from "./color-sensor"
+import Address from "./address"
+import Connectors from "./connectors"
+import Holes from "./holes"
+
+export default () => (
+
+
+
+
+
+
+)
+
+export { Holes, Jumpers, Sensor, Address, Connectors }
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/jumpers.tsx b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/jumpers.tsx
new file mode 100644
index 00000000..6ac25570
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/jumpers.tsx
@@ -0,0 +1,89 @@
+export default ({ x = 0, y = 0 }: DisplacementProps) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+)
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/manual-edits.json b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/manual-edits.json
new file mode 100644
index 00000000..3943d369
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/manual-edits.json
@@ -0,0 +1,132 @@
+{
+ "pcb_placements": [
+ {
+ "selector": "U1",
+ "center": {
+ "x": 2.2502030804364352,
+ "y": 5.428163256457495
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "J3",
+ "center": {
+ "x": -0.8549000017833226,
+ "y": -11.64908172761491
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "R3",
+ "center": {
+ "x": -3.727199484458084,
+ "y": -2.686270449273035
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "I2C_PU",
+ "center": {
+ "x": 6.066815645927074,
+ "y": 1.2023315019129175
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "C1",
+ "center": {
+ "x": -2.339094944882282,
+ "y": 4.9953968003498925
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "R1",
+ "center": {
+ "x": 7.825594654506169,
+ "y": 4.352000978683465
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "J2",
+ "center": {
+ "x": -5.787064804323586,
+ "y": 1.4325424571519605
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "J1",
+ "center": {
+ "x": 0.4241527302168393,
+ "y": -7.104558231132076
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "D1",
+ "center": {
+ "x": 10.55082732453246,
+ "y": 7.686068441327448
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "R2",
+ "center": {
+ "x": 5.613915167767244,
+ "y": 4.277551319413394
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "R4",
+ "center": {
+ "x": 8.226742748762582,
+ "y": 7.844550237206402
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "LED",
+ "center": {
+ "x": 10.396455521156014,
+ "y": 3.97643184578288
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "R5",
+ "center": {
+ "x": -5.458969271752315,
+ "y": -2.6766936034683457
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "OX45",
+ "center": {
+ "x": -1.905596850327476,
+ "y": -0.6276070354743863
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "OX46",
+ "center": {
+ "x": 0.356835322373815,
+ "y": 1.5708702947969293
+ },
+ "relative_to": "group_center"
+ },
+ {
+ "selector": "OX44",
+ "center": {
+ "x": -1.078496780801587,
+ "y": -3.1897513495254888
+ },
+ "relative_to": "group_center"
+ }
+ ]
+}
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tscircuit.config.json b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tscircuit.config.json
new file mode 100644
index 00000000..1ccfd369
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tscircuit.config.json
@@ -0,0 +1,3 @@
+{
+ "mainEntrypoint": "index.tsx"
+}
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tsconfig.json b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tsconfig.json
new file mode 100644
index 00000000..e44135af
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "target": "ES6",
+ "module": "ESNext",
+ "jsx": "react-jsx",
+ "outDir": "dist",
+ "strict": true,
+ "esModuleInterop": true,
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "sourceMap": true,
+ "allowSyntheticDefaultImports": true,
+ "experimentalDecorators": true,
+ "types": ["@tscircuit/core"]
+ }
+}
diff --git a/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/types.d.ts b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/types.d.ts
new file mode 100644
index 00000000..3439f008
--- /dev/null
+++ b/boards/SparkFun Tristimulus Color Sensor - OPT4048DTSR/types.d.ts
@@ -0,0 +1,4 @@
+interface DisplacementProps {
+ x: number
+ y: number
+}