This repo contains hand-curated tscircuit TSX schematics for Texas Instruments devices, reusable TI reference subcircuits, and raw TI chip definitions.
The published package is @tsci/tscircuit.ti. It provides ready-to-use
subcircuit components and low-level chip components that can be imported into a
local tscircuit project, placed on a board, and connected to from the
surrounding circuit.
bun add @tsci/tscircuit.tiImport the TI part you need from the package and place it inside a board.
import { PowerMonitor_INA237 } from "@tsci/tscircuit.ti"
export default () => (
<board width="18mm" height="14mm">
<PowerMonitor_INA237 name="INA237" />
</board>
)When you need the bare chip package instead of a full reference design, import
the chip by its short TI part name. If that chip currently maps to a specific
package footprint in lib/chips, the package keeps the underlying MPN-named
definition available and exposes the short-name wrapper from the package
entrypoint.
import { BQ24074 } from "@tsci/tscircuit.ti"
export default () => (
<board width="14mm" height="14mm">
<BQ24074 name="U1" footprintVariant="vqfn_16_ep_3x3" pcbX={0} pcbY={0} />
</board>
)footprintVariant is optional today and defaults to the currently available
chip footprint for that short-name export. New code should use readable package
names such as vqfn_16_ep_3x3 or sot_23_5.
Imported TI parts are subcircuits. To connect an external component to a pin inside one of those subcircuits, use a selector string that starts with the placed subcircuit name, then selects the internal component and pin.
import { PowerMonitor_INA237 } from "@tsci/tscircuit.ti"
export default () => (
<board width="22mm" height="16mm">
<PowerMonitor_INA237 name="INA237" />
<resistor
name="R11"
resistance="1k"
footprint="0402"
pcbX={7}
pcbY={-3}
connections={{
pin1: ".INA237 .J1 .SCL",
}}
/>
</board>
)The selector ".INA237 .J1 .SCL" means:
.INA237selects the placedINA237subcircuit..J1selects the internal connector namedJ1inside that subcircuit..SCLselects theSCLpin on that connector.
Use the same pattern for other exported TI subcircuits and their internal
components. For example, ".INA237 .U1 .VS" selects the VS pin on the
internal U1 chip inside the placed INA237 subcircuit.
The package currently exports these subcircuit components:
BatteryManagement_BQ24074BatteryManagement_BQ25895BatteryManagement_BQ27441G1WirelessMCU_CC2340R5WirelessMCU_CC3235SFMotorDriver_DRV8833MotorDriver_DRV8876EnvironmentalSensor_HDC2080EnvironmentalSensor_HDC3020EnvironmentalSensor_HDC3022PowerMonitor_INA237Microcontroller_MSPM0G3507TemperatureSensor_TMP1075LoadSwitch_TPS22919BuckConverter_TPS62933BuckBoostConverter_TPS63802PowerManagement_TPS7A02PowerModule_TPSM82823
The package also exports these low-level chip components from lib/chips. Each
chip is listed individually below, including whether it supports a
footprintVariant selector on the short-name export.
| Chip Export | footprintVariant |
Underlying Component Export |
|---|---|---|
BQ24074 |
vqfn_16_ep_3x3 |
BQ24074RGTR |
BQ25895 |
wqfn_24_ep_4x4 |
BQ25895RTWR |
BQ27441G1 |
vson_12_ep_2p5x4 |
BQ27441DRZR_G1B |
CC2340R5 |
- |
CC2340R5 |
CC3235SF |
vqfn_64_ep |
CC3235SF12RGKR |
DRV8833 |
- |
DRV8833 |
DRV8876 |
- |
DRV8876 |
HDC2080 |
wson_6_ep_3x3 |
HDC2080DMBR |
HDC3020 |
wson_8_ep_2p5x2p5 |
HDC3020DEFR |
HDC3022 |
wson_8_ep_2p5x2p5 |
HDC3022DEJR |
INA237 |
vssop_10 |
INA237AQDGSRQ1 |
MSPM0G3507 |
lqfp_64 |
MSPM0G3507SPMR |
TMP1075 |
wson_8_ep_2x2 |
TMP1075DSGR |
TPS22919 |
- |
TPS22919 |
TPS6293 |
- |
TPS6293 |
TPS63802 |
vson_hr_10 |
TPS63802DLAR |
TPS7A02 |
sot_23_5 |
TPS7A0230PDBVR |
TPSM82823 |
- |
TPSM82823 |
Rows with - are direct chip exports and do not currently expose a
footprintVariant prop. For the wrapper exports, the underlying component
exports are also re-exported from the package when you want to import the exact
low-level definition directly.
The package also exports:
TiChipComponents: an object map of all exported short-name chip components.TiChipName: a TypeScript union of keys inTiChipComponents.TiChipComponent: a TypeScript type for any exported chip component.TiSubcircuitComponents: an object map of all exported subcircuit components.TiSubcircuitName: a TypeScript union of keys inTiSubcircuitComponents.TiSubcircuitComponent: a TypeScript type for any exported subcircuit component.
The lib/chips directory contains the low-level TI chip components. Most files
represent an individual manufacturer part number and define details such as pin
labels, aliases, supplier part numbers, and the physical footprint used by
tscircuit.
Import chips from the package entrypoint by their short names, such as
BQ24074, INA237, or TPS7A02. The underlying MPN-named definitions remain
available as direct exports when you need to pin a specific source component.
Most users should still start with the higher-level subcircuits, but the chip
definitions are the building blocks those subcircuits use internally.
The lib/subcircuits directory contains reusable reference circuits built
around the chip definitions. A subcircuit usually includes the main TI part plus
supporting components such as capacitors, resistors, connectors, net labels, and
traces.
These are the components exported from the package entrypoint in index.ts.
For example, PowerMonitor_INA237 comes from
lib/subcircuits/PowerMonitor_INA237.circuit.tsx and can be imported from
@tsci/tscircuit.ti.
The lib/subcircuits/__snapshots__ directory contains generated schematic and
PCB SVG snapshots used to check visual output.
The lib/simulations directory contains example circuits for simulation-focused
TI use cases. These files exercise selected parts and reference designs, such as
driver PWM behavior or switching regulator waveforms.
Simulation examples may use model data from lib/chips/spice-models. The
lib/simulations/__snapshots__ directory stores generated schematic and
simulation SVG snapshots.
Install dependencies:
bun installRun the tscircuit dev server:
bun run devBuild the package:
bun run buildRun TypeScript checks:
bun run typecheckUpdate visual snapshots when intentional schematic, PCB, or simulation output changes:
bun run snapshot:update