Skip to the content
4 layers100 × 100 mmBT40F audio board, the printed circuit board in 3D

Platforma eksperymentalna BLE Audio oparta na nRF5340 – sprzęt, firmware i testy.

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
114
Nets
161
Pads
487
Tracks, vias
1,940, 320
Pours
7
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
13 Apr 2026
Updated
20 Apr 2026

Overview

BT40F audio board is an open-source printed circuit board by KapiCola, from the KapiCola/ble-audio-platform repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 100 mm with 114 parts on 161 nets, routed with 1,940 tracks and 320 vias.

It is built around the CP2105-F01-GM, SGTL5000XNBA3R2 and USBLC6-2SC6, with the NPM1300-QEAA-R7 among its other parts. Its parts include 36 resistors, 30 capacitors, 17 diodes, 13 connectors and 6 ICs. It belongs with the audio and music and radio and wireless boards of this library.

Main components

4

README

README.md

BLE Audio Platform - Engineering Project

BLE Audio Platform board

Custom hardware and firmware platform for prototyping and evaluating Bluetooth Low Energy Audio broadcast transmission.

This repository combines:

  • custom PCB design created in KiCad
  • firmware applications based on nRF Connect SDK and Zephyr RTOS
  • component datasheets used during design and bring-up
  • test logs and recorded audio collected during BLE Audio experiments

The platform is built around the BT40F SiP with the Nordic nRF5340 and was used to evaluate LE Audio broadcast transmission based on BIS streams.

System Overview

Block diagram

Main hardware blocks:

  • BT40F SiP with Nordic nRF5340
  • Nordic nPM13xx PMIC (nPM1304 used in the assembled board as a practical substitute for nPM1300; the main functional difference is reduced battery-charging capability)
  • CP2105 USB-UART bridge
  • SGTL5000 external audio codec
  • USB-C power and debug connectivity
  • microphone, line output, and headphone audio connectors

Repository Layout

text
.
|-- Datasheets/   Component datasheets used during design and bring-up
|-- Firmware/     Zephyr/NCS applications, overlays, and helper modules
|-- Images/       Board photos, PCB renders, and architecture diagrams
|-- KiCad/        Schematic, PCB, project libraries, and Gerber outputs
`-- Tests_data/   Recorded audio samples and test logs

Important subdirectories:

  • Firmware/bap_broadcast_source/ BLE Audio broadcast source application
  • Firmware/bap_broadcast_sink/ BLE Audio broadcast sink application
  • Firmware/codec_test/ codec bring-up and audio-path verification
  • Firmware/test_i2c/ I2C and peripheral detection tests
  • Firmware/leds_test/ PMIC and LED bring-up
  • Firmware/beacon/ BLE beacon baseline application
  • Firmware/biblioteki/ shared helper modules such as pmic and i2c_helpers
  • KiCad/BT40F_audio_board_smaller/ main KiCad project
  • KiCad/Gerber/ exported manufacturing files
  • Tests_data/Test_Logs/ logs from lab and real-world experiments
  • Tests_data/Recorded_Audio/ captured audio files used during evaluation

Note: some directories inside Firmware/ such as build/, Build_V1/, and MyBoard/ are generated build outputs committed alongside the source tree. They are useful as build records, but they are not the primary source files to edit.

Firmware Summary

The main project flow is built around two applications:

  • bap_broadcast_source transmits BLE Audio broadcast streams
  • bap_broadcast_sink receives BLE Audio broadcasts and contains project-specific modules for LC3 handling, USB, codec output, and stream reception

Additional applications are included for hardware validation and bring-up:

  • codec_test initializes and probes the SGTL5000 path
  • test_i2c verifies low-level I2C communication and peripheral presence
  • leds_test validates PMIC-related control paths and LED behavior
  • beacon provides a minimal BLE reference application

The per-application README.rst files under Firmware/ are based on upstream Zephyr samples. For this repository, the project-specific behavior is defined mainly by the local src/, boards/, *.overlay, prj.conf, and Kconfig* files.

Hardware Design

The hardware project contains:

  • schematic and PCB layout files in KiCad/BT40F_audio_board_smaller/
  • custom symbol and footprint libraries in KiCad/BT40F_audio_board_smaller/Project libraries/
  • generated Gerbers in KiCad/Gerber/BT40F_board_revA.zip
  • supporting visual assets in Images/

Some hardware files and library names still refer to nPM1300, while the assembled prototype used nPM1304 because nPM1300 was unavailable at the time. For this project, the devices are treated as near-equivalent except for the weaker charging capability of nPM1304.

PCB render

Building The Firmware

This repository does not include a full NCS workspace manifest, so builds are expected to run inside an existing nRF Connect SDK environment with west available.

Example commands reconstructed from the committed build artifacts:

bash
west build --pristine --build-dir build/source-custom Firmware/bap_broadcast_source --board nrf5340_audio_dk/nrf5340/cpuapp -- -DEXTRA_CONF_FILE=boards/nrf5340_audio_dk_nrf5340_cpuapp.conf -DCONF_FILE=prj.conf -DEXTRA_DTC_OVERLAY_FILE=Custom_Board.overlay -DDTC_OVERLAY_FILE=app.overlay

west build --pristine --build-dir build/sink-custom Firmware/bap_broadcast_sink --board nrf5340_audio_dk/nrf5340/cpuapp -- -DEXTRA_CONF_FILE=boards/nrf5340_audio_dk_nrf5340_cpuapp.conf -DCONF_FILE=prj.conf -DEXTRA_DTC_OVERLAY_FILE=Custom_Board.overlay -DDTC_OVERLAY_FILE=app.overlay

west build --pristine --build-dir build/codec-test Firmware/codec_test --board nrf5340_audio_dk/nrf5340/cpuapp -- -DCONF_FILE=prj.conf -DDTC_OVERLAY_FILE=nrf5340_audio_dk_nrf5340_cpuapp.overlay

If you build one of the custom configurations, review the local overlays and board configuration files in the target application directory before flashing.

Test Data

Test artifacts are grouped under Tests_data/:

  • Test_Logs/01_Lab_Tests/ source and sink logs captured in laboratory conditions
  • Test_Logs/02_Real_World_Tests/ logs collected in a more challenging radio environment
  • Test_Logs/03_Audio_Transmission_test/ dedicated source and sink logs for audio transmission checks
  • Recorded_Audio/ sample WAV captures

Due to memory constraints, logging on the Network Core was disabled. The provided logs come from the Application Core.

Known Limitations

  • The SGTL5000 codec could not be fully used in the final tests because the available MCU clocking was insufficient for the intended MCLK configuration
  • Network Core logging was disabled because of memory constraints
  • Final validation therefore focused on LC3 processing and BLE transmission rather than a fully closed audio path

License

This project is licensed under the terms of the LICENSE file in this repository.

Parts

114
QtyValueFootprintReferences
10160Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2, R4, R6, R14, R15, R16, R17, R28, R29, R30
90Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R3, R5, R18, R19, R20, R21, R22, R26
810uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC4, C10, C11, C12, C13, C14, C15, C17
7LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D2, D3, D9, D10, D11, D12
60.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C9, C18, C20, C27, C30
51uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C8, C16, C25, C28
52k2Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9, R10, R23, R24, R27
5ESDDiode_SMD:D_SOD-523D4, D5, D6, D7, D8
41uFExternal_footprints:R82_cap_raster_5mmC21, C22, C23, C24
20.1uFExternal_footprints:Cap_foil_5mmC19, C26
2140Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR33, R36
2180Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR32, R35
22.2uHInductor_SMD:L_1008_2520Metric_Pad1.43x2.20mm_HandSolderL1, L2
2340Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR31, R34
24.7uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC6, C29
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11, R12
2AudioJack3External_footprints:35RASMT2BHWNTRXJ6, J9
2Conn_Coaxial_x2External_footprints:FC68405J7, J8
2LED_2LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD14, D15
2USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1, U2
11-5uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC5
1100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1
12.2kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR25
12.2uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2
14.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR13
1500kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8
168kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR7
1BTN1External_footprints:EVQQ2D02WSW2
1BTN2External_footprints:EVQQ2D02WSW3
1BTN3External_footprints:EVQQ2D02WSW4
1BTN4External_footprints:EVQQ2D02WSW5
1BTN5External_footprints:EVQQ2D02WSW6
1CP2105-F01-GMExternal_footprints:CP2105-F01-GMIC2
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_HorizontalJ3
1Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical_SMD_Pin1LeftJ5
1Conn_01x05_SocketConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical_SMD_Pin1LeftJ4
1Conn_ARM_JTAG_SWD_10Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ10
1LED_1LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD13
1NPM1300-QEAA-R7External_footprints:NPM1300-QEAA-R7IC1
1R1Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1LeftJ11
1R2Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1LeftJ12
1R3Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical_SMD_Pin1LeftJ13
1RGB_1External_footprints:OSTB0603C1CAD16
1RGB_2External_footprints:OSTB0603C1CAD17
1SGTL5000XNBA3R2External_footprints:SGTL5000XNBA3R2IC3
1SW_PushExternal_footprints:EVQQ2D02WSW1
1USB_C_CoreExternal_footprints:USB421603AJ1
1USB_C_DebugExternal_footprints:USB421603AJ2
1~External_footprints:XCVR_BT40FU3

The 110 most common of 114 parts.

Similar boards

  • 2 layers51.9 × 25.9 mmUPDI Programmer, the printed circuit board in 3D

    UPDI Programmer

    Indra-nil/SERIAL-UPDI-HV-PROGRAMMER

    CP2105 based dual UART UPDI+UART

    51 parts
  • 4 layers268 × 152 mmDrumboy Main, the printed circuit board in 3D

    Drumboy Main

    Randomwaves/Drumboy-Pro

    📖 Developer Wiki — full hardware specs, schematics walkthrough, firmware architecture, DSP internals, and memory map.

    346 parts10MIT
  • 4 layers61 × 68.8 mmWDM(RevB V1), the printed circuit board in 3D

    WDM(RevB V1)

    ColbyDAllen/Wearable-Drum-Machine

    This project is mostly complete. Until I can find a more suitable input/sensory solution, please consider this work on hiatus.

    114 parts
  • 4 layers99.6 × 64.2 mmHiro samurai, the printed circuit board in 3D

    Hiro samurai

    electrodonkey/samurai_hardware

    Sumo Robot - Main Board

    171 parts1MIT
  • 4 layers30 × 18 mmBle mote, the printed circuit board in 3D

    Ble mote

    kitspace-forks/air-quality-monitor

    Design repository for an ESP32-based IoT air quality monitor

    49 partsBSD-3-Clause
  • 4 layers36 × 36 mmJRWatch, the printed circuit board in 3D

    JRWatch

    jadenrhee/JRWatch

    Low-power BLE wearable: nRF52840 module + nPM1300 PMIC + BMI270 IMU + Sharp MIP display. 36 mm 4-layer board, ~15 µA projected sleep current, Zephyr firmware.

    47 parts2
  • 4 layers100 × 100 mmDMXion 4port node, the printed circuit board in 3D

    DMXion 4port node

    NEOgHacking/DMXion_4Port_Node

    A 4 port dmx node with rdm funtionallity. Connects via ARTNET or sACN

    275 parts2GPL-3.0

Questions

How big is the BT40F audio board PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the BT40F audio board use?

114 parts, built around the CP2105-F01-GM, SGTL5000XNBA3R2, USBLC6-2SC6 and NPM1300-QEAA-R7. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the BT40F audio board KiCad files?

From the KapiCola/ble-audio-platform repository on GitHub, at the commit this page was made from: the board is KiCad/BT40F_audio_board_smaller/BT40F_audio_board.kicad_pcb and its schematic KiCad/BT40F_audio_board_smaller/BT40F_audio_board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BT40F audio board design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).