tmp108

Public

@6mil-labs

Download board files

Files for version 1. Pick what you came for.

Share tmp108

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

TMP108 Qwiic

A 1" × 1" Qwiic / STEMMA QT breakout for the Texas Instruments TMP108 digital temperature sensor.

Want one assembled and tested? Buy it from 6mil Labs on Tindie — or build your own from the sources here.

Driver: tmp108 — a no_std Embedded Rust driver with blocking and async APIs, ALERT threshold support and type-safe address constructors (source · docs).

The TMP108 is a 12-bit I²C/SMBus temperature sensor with a dynamically-programmable alert window, packaged in a 6-ball WCSP. This board brings it out to two Qwiic connectors for daisy-chaining and a 0.1" header for breadboard use.

  • Resolution: 12 bits (0.0625 °C)
  • Accuracy: ±0.75 °C max (−20 °C to +85 °C), ±1 °C max (−40 °C to +125 °C)
  • Supply: 1.4 V to 3.6 V (3.3 V from the Qwiic bus)
  • Current: 6 µA max, active
  • Interface: I²C / SMBus, four solder-selectable addresses
  • ALERT: programmable over/under-temperature window, broken out to the header

Board

Dimensions25.4 × 25.4 mm (1.0" × 1.0"), 1 mm corner radius
Layers4 (F.Cu · In1.Cu GND · In2.Cu 3V3 · B.Cu)
Thickness1.6 mm
FinishLead-free HASL
Mounting4 × 2.54 mm holes on a 20.32 mm (0.8") grid
Signal track width0.1524 mm (6 mil)
Power track width0.4572 mm (18 mil)

Connectors

J1, J2 — Qwiic (JST SH, 1 mm pitch, 4-pin right-angle SMD). Electrically identical and wired in parallel, so the board can sit anywhere in a Qwiic chain. The connector and pinout are the same as Adafruit STEMMA QT, so either cable works.

PinSignal
1GND
23V3
3SDA
4SCL

J3 — 1 × 5 0.1" header. Not populated by the fab; solder your own.

PinSignal
1GND
23V3
3SDA
4SCL
5ALERT

ALERT is open-drain and has no pull-up on this board — provide one on the host side if you use it.

I²C address

The TMP108 address is set by the A0 pin. Two jumpers select between the four options; the silkscreen prints the resulting address next to each pad.

AddressA0 tied toJumper setting
0x48 (default)GNDJP2 pads 1–2 bridged (factory default)
0x493V3JP2 pads 2–3 bridged
0x4ASDAJP1 pads 1–2 bridged
0x4BSCLJP1 pads 2–3 bridged

Cut the existing JP2 bridge before closing any other option — only one may be connected at a time.

R3 (10 kΩ) sits between A0 and 3V3 and keeps the pin from floating while a jumper is open. Note that in the default configuration it also draws roughly 330 µA through the JP2 GND bridge, which is far more than the sensor's own 6 µA. If you are chasing microamps, cut JP4 and remove R3, then hard-strap A0 with JP1/JP2 alone.

Jumpers

RefDefaultFunction
JP1openTies A0 to SDA (0x4A) or SCL (0x4B)
JP21–2 closedTies A0 to GND (0x48) or 3V3 (0x49)
JP3closedConnects the on-board 10 kΩ SDA/SCL pull-ups (R1, R2) to 3V3
JP4closedPowers the red LED (D1) via R4

Cut JP3 when the bus already has pull-ups elsewhere. Every board added to a Qwiic chain puts another 10 kΩ pair in parallel, and past a handful of boards the combined pull-up starts to exceed what the bus drivers can comfortably sink.

Cut JP4 to remove the LED current in battery-powered use — roughly 1.4 mA, assuming a 1.9 V forward drop across D1 and the 1 kΩ R4. The sensor itself only needs 6 µA, so the LED dominates the board's consumption by more than two orders of magnitude.

Test points

Six unrouted test pads were present in earlier revisions of this design and have been removed. Probe the 0.1" header (J3) instead — it exposes GND, 3V3, SDA, SCL and ALERT.

Bill of materials

RefValuePackageLCSC
U1TMP108DSBGA-6 (YFF), 0.5 mm pitchC129486
C10.1 µF0603C14663
R1, R210 kΩ0603C25804
R310 kΩ0603C25804
R41 kΩ0603C21190
D1Red LED0603C2286
J1, J2Qwiic JST SH 1 mm RASMDC51940130
J31 × 5 header2.54 mm THT—

Repository layout

tmp108.kicad_pro          KiCad project
tmp108.kicad_sch          Schematic
tmp108.kicad_pcb          Board layout
6milLabs.kicad_sym        Local symbol library (TMP108)
SparkFun-Qwiic.kicad_sym  Local symbol library (Qwiic logo)
SparkFun-Qwiic.pretty/    Local footprint library (Qwiic logo, various sizes)
sym-lib-table             Project symbol library table
fp-lib-table              Project footprint library table

Fabrication outputs are generated into production/ and are not tracked.

Opening the project

Designed with KiCad 10 (generator_version "10.0"). Older releases may refuse to open these files or drop features on load.

6milLabs.kicad_sym (the TMP108 symbol), SparkFun-Qwiic.kicad_sym and SparkFun-Qwiic.pretty/ are vendored in this repository and resolve through ${KIPRJMOD}, so a fresh clone needs no path fixing.

One dependency is not vendored: the SparkFun KiCad libraries, installed from the Plugin and Content Manager. Symbols come from PCM_SparkFun-Aesthetic, -Capacitor, -Connector, -Jumper, -LED, -PowerSymbol and -Resistor. Only PCM_SparkFun-Aesthetic and PCM_SparkFun-Connector supply footprints — the passives use the SparkFun 0402 symbols with their footprints overridden to the standard KiCad Resistor_SMD, Capacitor_SMD and LED_SMD 0603 variants.

Install them from the PCM ("Libraries" tab, search "SparkFun"), then close and reopen KiCad — on KiCad 10 the libraries are not visible until you restart. Without them the schematic still opens and renders from its cached symbols, but ERC reports lib_symbol_issues and you cannot edit or update those symbols from the library.

The board itself only needs the two PCM footprint libraries above, since everything else is either vendored or part of the stock KiCad footprint set.

Manufacturing

Fabrication files are produced with the Fabrication Toolkit plugin; its settings live in fabrication-toolkit-options.json. Running the plugin writes a gerber archive, bom.csv, positions.csv, designators.csv and netlist.ipc into production/, formatted for JLCPCB.

Order as a 4-layer, 1.6 mm board with lead-free HASL.

J3 is marked DNP and is left out of the generated BOM — solder your own header if you want it.

Software

tmp108 is a platform-agnostic Rust driver for this sensor, built on embedded-hal / embedded-hal-async and no_std. It offers blocking (Tmp108) and async (AsyncTmp108) APIs, ALERT threshold access, one-shot conversions, and type-safe constructors for all four I²C addresses.

[dependencies]
tmp108 = "0.5"

Each constructor corresponds to a jumper setting on this board, so the address you solder is the constructor you call:

Jumper settingAddressConstructor
JP2 pads 1–2 (default)0x48Tmp108::new_with_a0_gnd(i2c)
JP2 pads 2–30x49Tmp108::new_with_a0_vplus(i2c)
JP1 pads 1–20x4ATmp108::new_with_a0_sda(i2c)
JP1 pads 2–30x4BTmp108::new_with_a0_scl(i2c)

AsyncTmp108 exposes the same four constructors. The programmable alert window maps to set_high_limit / set_low_limit, available in both the blocking and async APIs.

API documentation is on docs.rs; the source is on GitHub. The driver is MIT-licensed and developed separately from this board — it works with any TMP108, not just this one.

License

Copyright (C) 2025-2026 6mil Labs.

This source describes Open Hardware and is licensed under the CERN Open Hardware Licence Version 2 – Strongly Reciprocal (CERN-OHL-S-2.0). The full text is in LICENSE.

You may redistribute and modify this source and make products using it under the terms of the CERN-OHL-S v2. This source is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-S v2 for applicable conditions.

Source location: https://github.com/6mil-Labs/tmp108

CERN-OHL-S is strongly reciprocal: if you convey a product made from this source, or a modified version of the source, you must make the complete corresponding source available under the same licence (§3.3, §4).

Designed by Felipe Balbi.

Third-party content

The vendored SparkFun-Qwiic.kicad_sym and SparkFun-Qwiic.pretty/ files, and the PCM_SparkFun-* symbols cached in tmp108.kicad_sch, are derived from the SparkFun KiCad Libraries, copyright SparkFun Electronics and released under the Creative Commons Attribution 4.0 International licence.

Those files remain under CC BY 4.0. Under CERN-OHL-S they are Available Components (§1.7) and keep "their own applicable licences" (§3.3(d)) rather than being relicensed by this project.

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.