BoardRepo electronics project sharing
100%
Open file
teensy-sound-sensor-pcb battery-charger view

Imported from GitHub: forrestrae/teensy-sound-sensor-pcb · commit 8f54d7c · license Apache-2.0

Description

A KiCad 9.0 carrier board for the Teensy 4.x microcontroller, designed for real-time audio sensing with USB-C Power Delivery input, 4S Li-ion battery management, I2S MEMS microphone, and LED lighting outputs.

README

Sound Sensor Teensy Carrier

A KiCad 9.0 carrier board for the Teensy 4.x microcontroller, designed for real-time audio sensing with USB-C Power Delivery input, 4S Li-ion battery management, I2S MEMS microphone, and LED lighting outputs.

Features

  • USB-C Power Delivery — TPS25751 PD controller with EEPROM configuration; accepts standard 5 V USB or negotiated PD voltages
  • 4S Li-ion Battery System — BQ25798 charger, BQ7791500 multi-cell protection (30 A rated), and Infineon N-channel disconnect FET
  • Regulated Power Rails — 5 V and 3.3 V via TPS54538 synchronous buck converter
  • I2S MEMS Microphone — TDK ICS-43434 with direct I2S2 connection to Teensy
  • Dual LED Drivers — TPS923652 (white, ADIM + PWM) and TPS92200D2 (UV-A 3535, PWM)
  • Multi-board panel — PCB ships as a panel; individual sub-boards extracted with kikit

Hardware Overview

Schematic Architecture

The design uses KiCad hierarchical sheets:

PageSub-sheetFile
1Top levelSound Sensor Teensy Carrier.kicad_sch
2USB-C Connectorusb-c-connector.kicad_sch
3USB-PD Controllerusb-pd-controller.kicad_sch
4Battery Chargerbattery-charger.kicad_sch
5DC Convertersdc-converters.kicad_sch
6MCUmcu.kicad_sch
7Battery Protectorbattery_protector.kicad_sch
8Mic Boommic_boom.kicad_sch
9WL-SUMW UV LED Boardwl-sumw_uv_led_board.kicad_sch
10White LED Boardwhite_led_board.kicad_sch

Power Architecture

USB-C (5 V–20 V PD)
  └─ TPS25751 USB-PD Controller
       └─ VBUS / +5 V rail
            ├─ TPS54538 Buck → +3.3 V (MCU, logic, microphone)
            └─ BQ25798 Charger → 4S Li-ion pack (14.8 V–16.8 V)
                                    └─ BQ7791500 Protection

Key Components

FunctionPartManufacturer
USB-PD ControllerTPS25751DREFRTexas Instruments
PD Config EEPROM24LC256-I/SNMicrochip
Battery ChargerBQ25798RQMRTexas Instruments
Battery ProtectorBQ7791500PWRTexas Instruments
Disconnect FETIQDH35N03LM5ATMA1Infineon
NTC Thermistor103AT-2 (10 kΩ)Semitec
Buck ConverterTPS54538RQFRTexas Instruments
MEMS MicrophoneICS-43434TDK
White LED DriverTPS923652DRRRTexas Instruments
UV LED DriverTPS92200D2DDCRTexas Instruments

MCU Connections (Teensy 4.x)

SignalTeensy InterfaceDescription
I2S.BCLK / SD / WSI2S2ICS-43434 microphone
MCU_I2C.SCL/SDA/IRQI2CCharger + PD controller
LED.ONSET_EN/ADIMPWMWhite LED onset channel
LED.BEAT1_EN/ADIMPWMWhite LED beat channel 1
LED.BEAT2_EN/ADIMPWMWhite LED beat channel 2

Repository Structure

Sound Sensor Teensy Carrier Kicad/
├── Sound Sensor Teensy Carrier.kicad_pro   # Project file
├── Sound Sensor Teensy Carrier.kicad_pcb   # PCB layout (panel)
├── Sound Sensor Teensy Carrier.kicad_sch   # Top-level schematic
├── battery-charger.kicad_sch
├── battery_protector.kicad_sch
├── dc-converters.kicad_sch
├── mcu.kicad_sch
├── mic_boom.kicad_sch
├── usb-c-connector.kicad_sch
├── usb-pd-controller.kicad_sch
├── white_led_board.kicad_sch
├── wl-sumw_uv_led_board.kicad_sch
├── seperate.zsh                            # kikit panel extraction script
├── ibom.config.ini                         # Interactive BOM config
└── freerouting.dsn                         # Freerouting export

Tools & Dependencies

ToolPurposeInstall
KiCad 9.0EDA (schematic + layout)kicad.org
kikitPanel sub-board extractionpip install kikit
InteractiveHtmlBomBOM generationKiCad plugin manager

Sub-board Extraction

The PCB is laid out as a panel. seperate.zsh uses kikit separate to extract individual sub-boards by board-array reference designator into output/<name>/:

./seperate.zsh

Edit the script to enable/disable specific boards (B1–B6). Extracted boards are written to output/<board-name>/<board-name>.kicad_pcb.

BOM Generation

Open the project in KiCad and run the Interactive HTML BOM plugin. Output lands in bom/ibom.html per ibom.config.ini. Key BOM fields: Value, Footprint, MPN, Manufacturer, Datasheet, Category.