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>
)The BluetoothSpeaker_CC2564C_TAS2505.circuit.tsx
example composes the CC2564C Bluetooth controller, MSP430F5229 host, TAS2505
audio amplifier, BQ24074 battery charger, and TPS7A2018 1.8 V regulator into a
connected Bluetooth speaker schematic.
The ObstacleDetectionSensor.circuit.tsx
example composes the TIDEP-01024 AWR1843AoP radar SoC, 40 MHz clock, and QSPI
flash into the radar front-end and processing subsystem.
The
BloodPressureAndHeartRateMonitor_TIDA010266.circuit.tsx
example reproduces TI's TIDA-010266 blood-pressure and heart-rate monitor from
the released schematic and BOM. It preserves reference designators U1-U7,
R1-R23, C1-C18, J1-J10, TP1-TP7, and S1, including the DNP shutdown resistor
and both selectable instrumentation-amplifier paths. The example composes these
reusable modules:
PowerManagement_TPS7A2433_TIDA010266VoltageReference_ATL431LI_TIDA010266InstrumentationAmplifier_INA350AnalogSignalConditioning_LMV324A_TIDA010266Microcontroller_MSPM0L1306_TIDA010266MotorDriver_DRV8210_TIDA010266
Only blocks centered on imported TI chips are published as reusable library subcircuits. The ADC filters, connectors, jumpers, test points, programming header, internal-MCU amplifier network, and Omron pressure-sensor stage remain example-local sections used to compose the complete monitor.
The newly modeled bare parts are available under the readable names
TPS7A24, ATL431LI, LMV324A, and SMPP2_03. Exact-package exports for the
TI devices remain available as TPS7A2433DBVR, ATL431LIBIDBZR, and
LMV324AIPWR; SMPP2_03 directly models Omron's 2SMPP03 package.
The example is schematic-first (routingDisabled): place and route the PCB only
after selecting the mechanical outline and validating medical-device safety
requirements for the intended product.
The SeatPositionModule.circuit.tsx
example stays intentionally small: it composes and electrically connects the
reusable reference subcircuits for the power supply, communication interface,
light driver, MCU, position feedback, and motor driver blocks.
The ConsumerWirelessModule.circuit.tsx
example assembles the seven reviewed references behind TI's Consumer wireless
module diagram. Its protected 5 V input feeds a 3.3 V buck rail, which powers
the LVDS interface, logic buffer, and temperature sensor; the logic signal then
flows through the LVDS driver and two-channel I/O protection. The antenna feed,
I2C bus, and protected differential pair remain explicit parent-level ports.
The standalone system-block-ui app provides a
React Flow canvas for dragging these subcircuits into a system diagram.
Connections stay at a readable system level—such as Power or Data—while a
curated semantic catalog resolves compatible voltage rails and protocols into
exact tscircuit selectors. The app generates example-style TSX and can evaluate
it with PCB and routing work disabled to produce a schematic preview and
downloadable PDF.
The default editor graph uses the six implementation-ready blocks from the Consumer wireless module. The antenna is temporarily omitted because it is not working properly in the editor. Its high-level Power, GPIO, and LVDS edges generate the same reviewed internal selectors as the complete example.
Open the deployed TI System Block Builder.
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.
InstrumentationAmplifier_INA350 contains only INA350CDSIDSGR and a 100 nF
bypass capacitor: the U5/C13 amplifier stage in
TI TIDA-010266, Figure 4-1.
It contains no pin headers, connectors, or gain-selection jumper. The
usage example below also uses only named parent nets, with no header. J10 in
TI's schematic is an optional parent-board gain jumper, not part of this module.
The CDS variant provides gains 30/50 V/V. gain="external" (default) exposes
GS for the parent: low selects 30, high or unconnected selects 50. gain={30}
or gain={50} straps GS internally to GND or VS. REF is not grounded; drive
it from a low-impedance source such as the buffered 1.25 V reference in TIDA-010266.
shutdown="external" (default) exposes SHDN; high or unconnected enables the
amplifier, while low disables it. shutdown="enabled" ties SHDN to VS. Do not
populate a pull-down on SHDN if the amplifier must remain enabled.
import { InstrumentationAmplifier_INA350 } from "@tsci/tscircuit.ti"
export default () => (
<board width="12mm" height="10mm" routingDisabled>
<InstrumentationAmplifier_INA350 name="Amp" gain="external" />
<trace from=".Amp .U1 > .VS" to="net.V3_3" />
<trace from=".Amp .U1 > .V_NEG" to="net.GND" />
<trace from=".Amp .U1 > .IN_POS" to="net.INA_IN_POS" />
<trace from=".Amp .U1 > .IN_NEG" to="net.INA_IN_NEG" />
<trace from=".Amp .U1 > .OUT" to="net.INA_OUT" />
<trace from=".Amp .U1 > .REF" to="net.VREF_1_25" />
<trace from=".Amp .U1 > .GS" to="net.INA_GS" />
</board>
)The supply, reference generator, sensor, ADC/filter, and optional controls belong
to the parent circuit. Named nets do not generate voltages or add physical
terminals: the example disables routing until the parent supplies real endpoints.
Connect an optional MCU shutdown signal to .Amp .U1 > .SHDN. REF, GS, and SHDN
remain separate from ground unless explicitly wired otherwise by the parent or
selected props. V- and the exposed pad are grounded, and C1 bypasses VS to GND.
Supply VS with 1.8-5.5 V. Inputs need a DC bias-current return path and must meet the INA350 datasheet's common-mode/output-swing limits. The module uses 0.1 mm traces. Fixed gain 50 uses a bottom-layer strap and two vias to keep the SHDN escape clear; use at least two copper layers. Verify the completed parent board's routing and fabrication clearances. It has no analog simulation model and is not a validated medical-device design.
INA350 defaults to the raw INA350CDSIDSGR chip with
footprintVariant="wson_8_ep_2x2". The exact INA350ABSIDSGR export is also
available for designs requiring gains 10/20. Both share the DSG0008A footprint
and pinout, but their gain settings are not interchangeable. No supplier SKU or
3D model is assumed.
MotorDriver_DRV8210 implements the full-bridge PWM application for the
8-pin WSON DRV8210DSGR. The Controller and BDC motor use
group showAsSchematicBox with real schematic signal ports, not PCB components.
Their port-to-port traces use schDisplayLabel for inline PWM1/PWM2 and
OUT1/OUT2 labels. Local bypass-capacitor ground labels keep ground wiring clear
of those signals. The two PWM inputs drive IN1 and IN2; OUT1 and OUT2 connect
to the motor.
import { MotorDriver_DRV8210 } from "@tsci/tscircuit.ti"
export default () => (
<board width="16mm" height="12mm">
<MotorDriver_DRV8210 name="Driver" />
</board>
)Connect a parent circuit to .Driver .U1 > .IN1, .Driver .U1 > .IN2,
.Driver .U1 > .OUT1, .Driver .U1 > .OUT2, .Driver .U1 > .VM,
.Driver .U1 > .VCC, and .Driver .U1 > .GND. The schematic labels are
PWM1, PWM2, OUT1, OUT2, VM, VCC, and GND respectively.
Unlike the six-pin DRL reference diagram, the DSG device also requires a separate VCC supply and MODE selection. This subcircuit grounds MODE for PWM, grounds the exposed thermal pad, and includes 0.1 uF bypass capacitors on both VM and VCC. Keep VCC within 1.65–5.5 V and VM within the DSG operating range of 0–11 V; add VM bulk capacitance sized for your motor and supply. See the TI pinout and supply requirements, PWM mode, and bulk capacitance guidance.
The raw chip is available as DRV8210DSGR or as
DRV8210 with footprintVariant="wson_8_ep_2x2".
OutputUserInterface_LEDMatrix_LP5892_Q1 implements the 48-source,
16-scan-line interface for a common-cathode 16-by-16 RGB LED matrix. It exposes
the four supply domains (VCC, VR, VG, and VB), GND, the
SCLK/SIN/SOUT serial interface, R0-R15, G0-G15, B0-B15, and
LINE0-LINE15 as public subcircuit nets. Connect from a parent circuit with
selectors such as .DisplayDriver > net.SCLK, .DisplayDriver > net.R0, and
.DisplayDriver > net.GND.
import { OutputUserInterface_LEDMatrix_LP5892_Q1 } from "@tsci/tscircuit.ti"
export default () => (
<board width="28mm" height="24mm" isViaInPadAllowed>
<OutputUserInterface_LEDMatrix_LP5892_Q1 name="DisplayDriver" />
<led
name="D_R0_LINE0"
color="red"
footprint="0603"
connections={{
anode: ".DisplayDriver > net.R0",
cathode: ".DisplayDriver > net.LINE0",
}}
/>
</board>
)The internal 23 kohm IREF resistor matches TI's 3 mA, BC=011 design example;
firmware must configure the matching brightness/current registers. SCLK must
run continuously and SIN should remain high while idle. VCC and VR may share a
rail, as may VG and VB; use at least 3.5 V on VCC when operating at 20 mA or
more per channel.
The exposed-pad thermal-via array requires isViaInPadAllowed on the parent
board. Follow TI's fabrication guidance by filling, plugging, or tenting the
vias. The implementation follows the
LP5892-Q1 datasheet and the
related LP5891Q1EVM hardware guide.
The package currently exports these subcircuit components:
BatteryManagement_BQ24072BatteryManagement_BQ24073BatteryManagement_BQ24074BatteryManagement_BQ25895BatteryManagement_BQ27441G1RealTimeClock_BQ32002WirelessMCU_CC2340R5BluetoothController_CC2564CWirelessMCU_CC2745R10WirelessMCU_CC3235SFMotorDriver_DRV8210MotorDriver_DRV8833MotorDriver_DRV8876PositionFeedback_DRV5013MotorDriver_DRV8305_TIDA01330(TIDA-01330)EnvironmentalSensor_HDC2080EnvironmentalSensor_HDC3020EnvironmentalSensor_HDC3022PowerMonitor_INA237InstrumentationAmplifier_INA350PressureTransmitter_PGA300IsolatedRS485_ISOW7841ClockBuffer_LMK1C1104AudioAmplifier_TAS2505TargetSocket_MSPTS430D8BluetoothAudioHost_MSP430F5229Microcontroller_MSPM0G3507Microcontroller_MSPM0L1306Q1_TIDA020065(TIDA-020065)Microcontroller_MSPM33C3xLEDDriver_TLC59116OutputUserInterface_LEDMatrix_LP5892_Q1TemperatureSensor_TMP1075TemperatureSensor_TMP1827MotorThermalProtection_TMP390(datasheet-derived; not an exact Window Module reference design)TemperatureSensor_LM50HV_Q1(LM50-Q1/LM50HV-Q1 datasheet, Figure 8-3; used because the Rearview Mirror Module block has no attached reference design)PowerSupply_LM74202_TPS7E81_Q1(LM74202-Q1 datasheet, page-1 Simplified Schematic and Figure 39 values and TPS7E81-Q1 datasheet, Figure 7-5; used because the Rearview Mirror Module block has no attached reference design)LoadSwitch_TPS22919BuckConverter_TPS62933BoostConverter_TPS61299X(also exported asTPS61299XBoostConverter)PowerManagement_TPS6521835BuckBoostConverter_TPS63802PowerManagement_TPS7A02PowerManagement_TPS7A20PowerManagement_TPS7A2018PowerManagement_TPS7A2028PowerManagement_TLV755PPowerModule_TPSM82823LevelShifter_TXB0104LevelShifter_TXS0102RFIDReader_TRF7960CommunicationInterface_LIN_TLIN1028CommunicationInterface_TCAN1042_TIDA01428(TIDA-01428)LightDriver_TIDA01330(TIDA-01330)PositionFeedback_DRV5013_TIDA01389(TIDA-01389)PowerSupply_LM5050_TIDA00992(TIDA-00992)ElectrochromicMirrorDriver_TIDA01539(TIDA-01539)LightSensor_OPT3001_TIDA01539(TIDA-01539)LogicBuffer_SN74LVC1G34(SN74LVC1G34 typical application)WirelessAntenna_W3006_TIDCWL1837MODCOM8I(TIDC-WL1837MODCOM8I)InputOutputProtection_TPD2E009_TIDA00399(TIDA-00399)BuckConverter_TPS62086_TIDA00399(TIDA-00399)InputPowerProtection_TPS25910_TIDA00890(TIDA-00890)TemperatureSensor_TMP103_TIDA00399(TIDA-00399)LVDSDriver_SN65LVDS31_TIDA060017(TIDA-060017)LampDriver_TPS92638_TIDA00356(TIDA-00356)
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 |
|---|---|---|
AM62L32 |
fccsp_373_anb |
AM62L32BOGHAANBR |
BQ24074 |
vqfn_16_ep_3x3 |
BQ24074RGTR |
BQ25895 |
wqfn_24_ep_4x4 |
BQ25895RTWR |
BQ27441G1 |
vson_12_ep_2p5x4 |
BQ27441DRZR_G1B |
CC2340R5 |
- |
CC2340R5 |
CC2564C |
- |
CC2564C |
CC2745R10 |
- |
CC2745R10E0WRHARQ1 |
CC3235SF |
vqfn_64_ep |
CC3235SF12RGKR |
CSD19532Q5B |
- |
CSD19532Q5B |
DAC101C081Q |
- |
DAC101C081QISD_NOPB |
DRV5013Q1 |
- |
DRV5013ADQDBZRQ1 |
DRV8210 |
wson_8_ep_2x2 |
DRV8210DSGR |
DRV8833 |
- |
DRV8833 |
DRV8876 |
- |
DRV8876 |
DRV83053Q1 |
- |
DRV83053QPHPQ1 |
HDC2080 |
wson_6_ep_3x3 |
HDC2080DMBR |
HDC3020 |
wson_8_ep_2p5x2p5 |
HDC3020DEFR |
HDC3022 |
wson_8_ep_2p5x2p5 |
HDC3022DEJR |
INA237 |
vssop_10 |
INA237AQDGSRQ1 |
INA350 |
wson_8_ep_2x2 |
INA350CDSIDSGR |
ISOW7841 |
soic_16_wide |
ISOW7841DWR |
LM74202Q1 |
- |
LM74202QPWPRQ1 |
LM50HVQ1 |
- |
LM50HVQDBZRQ1 |
LMK1C1104 |
tssop_8 |
LMK1C1104PWR |
LM5050Q1 |
- |
LM5050Q1MKX_1_NOPB |
LP5892Q1 |
vqfn_76_ep_9x9 |
LP5892QRRFRQ1 |
MSP430G2230ID |
- |
MSP430G2230ID |
MSP430F5229 |
- |
MSP430F5229IRGCR |
MSPM0L1306Q1 |
- |
MSPM0L1306QRHBRQ1 |
MSPM0G3507 |
lqfp_64 |
MSPM0G3507SPMR |
OPT3001 |
- |
OPT3001IDNPRQ1 |
PGA300ARHHR |
- |
PGA300ARHHR |
SN65HVD1473 |
vssop_10 |
SN65HVD1473DGSR |
SN65LVDS31D |
- |
SN65LVDS31D |
SN74LVC1G34DBVR |
- |
SN74LVC1G34DBVR |
TCAN1042HGV |
- |
TCAN1042HGVDRBQ1 |
TLIN1028 |
soic_8_powerpad |
TLIN10283DDARQ1 |
TLV755P |
sot_23_5 |
TLV75533PDBVR |
TLV316 |
- |
TLV316QDBVTQ1 |
TAS2505 |
- |
TAS2505 |
TMP103AYFF |
- |
TMP103AYFF |
TMP1827 |
- |
TMP1827 |
TMP1075 |
wson_8_ep_2x2 |
TMP1075DSGR |
TMP390Q1 |
- |
TMP390AQDRLRQ1 |
TPD2E009DRTR |
- |
TPD2E009DRTR |
TPS22919 |
- |
TPS22919 |
TPS25910RSA |
- |
TPS25910RSA |
TPS62086RLTR |
- |
TPS62086RLTR |
TPS6293 |
- |
TPS6293 |
TPS61299X |
sot_563_6 |
TPS61299DRLR |
TPS63802 |
vson_hr_10 |
TPS63802DLAR |
TPS7A02 |
sot_23_5 |
TPS7A0230PDBVR |
TPS7A20 |
sot_23_5 |
TPS7A2018PDBVR, TPS7A2033PDBVR |
TPS7E81Q1 |
- |
TPS7E8133QDBVRQ1 |
TPS92638 |
- |
TPS92638QPWPRQ1 |
TPS7A2028PDBVR |
- |
TPS7A2028PDBVR |
TPSM82823 |
- |
TPSM82823 |
TXB0104 |
vqfn_14_ep_3p5x3p5 |
TXB0104RGYR |
TXS0102 |
vssop_8 |
TXS0102DCUR |
W3006 |
- |
W3006 |
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.
MotorThermalProtection_TMP390 is derived from TMP390-Q1 datasheet Figure 7-1
for topology and relative schematic placement, and Figure 8-3 plus Tables 7-1
and 7-2 for component values and thresholds. It is not an exact TI Window
Module reference design because TI does not attach schematic or CAD source to
that subsystem.
The fixed datasheet example exposes VDD, VDDIO, GND, OUTA, and OUTB.
It selects a +90 C hot trip and -25 C cold trip with 10 C hysteresis. The
active-low, open-drain outputs reset at +80 C and -15 C, respectively.
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.
PositionFeedback_DRV5013 extracts the Window Module "Position Feedback -
Hall Effect Sensors" function from TI's TIDA-01389. The Window Module
subsystem's own Reference Design tab currently lists no design, so TIDA-01389
was selected from the closely related Motor Driver references: TI explicitly
identifies it for sunroof and window-lift applications and implements motor
position encoding with two DRV5013-Q1 latching Hall sensors. This extraction is
independent of the DRV8703/H-bridge work in PR #116 and does not duplicate that
motor-driver circuitry.
The TIDA-01389 BOM identifies U5/U6 as DRV5013ADQDBZRQ1, C13/C14 as
GRM155R61H104ME14D, R14/R15 as CRCW040210K0JNED, R9 as
CRCW06030000Z0EA, J1/J2 as SSQ-110-01-T-S, and J4 as Wurth Elektronik
691214310002. Following repository convention, passive and connector MPNs
are documented here instead of being rendered as schematic component values.
Hall-channel and connector GND pins use ordinary traces to net.GND so
tscircuit generates native ground symbols; V_BAT alone uses schDisplayLabel
as an inline trace label. No passive or net-label component has a custom
schematic size.
The lib/subcircuits/__snapshots__ directory contains generated schematic and
PCB SVG snapshots used to check visual output.
The lib/thirdparty-subcircuits directory contains application wiring circuits
for blocks that do not provide a TI reference design. These circuits clearly
identify the datasheet figure used as their source. For example,
TemperatureSensor_LM50HV_Q1 follows Figure 8-3 of the LM50-Q1/LM50HV-Q1
datasheet, while PowerSupply_LM74202_TPS7E81_Q1 combines the LM74202-Q1
page-1 Simplified Schematic (with Figure 39 values) and the TPS7E81-Q1 Figure
7-5 fixed-output LDO stage.
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