

Bt audio rec
Firmware and hardware design for a wall-mounted Bluetooth audio player and environmental monitor
- Size
- 54 × 82 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 63
- Nets
- 103
- Pads
- 302
- Tracks, vias
- 495, 154
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 1 Apr 2024
- Updated
- 9 Oct 2026
Overview
Bt audio rec is an open-source printed circuit board by canardos, from the canardos/bluetooth-wall-player repository on GitHub, published under the MIT licence. It is a 2-layer board of 54 × 82 mm with 63 parts on 103 nets, routed with 495 tracks and 154 vias.
It is built around the BME280, MCP1661-E/OT and VCNL4200, with the SI1308EDL, AYF333135A and DMG2301L among its other parts. Its parts include 19 capacitors, 16 resistors, 11 connectors, 6 ICs and 4 transistors. It belongs with the audio and music and radio and wireless boards and the STM32 boards of this library.
Main components
8BME280
LGA-8(2.5x2.5)-40℃~+85℃ 0%RH~100%RH 1.71V~3.6V 1.8uA 16bit I2C、SPI ±0.5℃ ±3%RH LGA-8(2.5x2.5) Temperature and Humidity Sensor ROHSBoschTemperature And Humidity SensorMCP1661-E/OT
SOT-23-5-40℃~+125℃ 1 1.227V~32V 125mA 2.4V~5.5V 250uA 500kHz Adjustable Boost Boost Built-in SOT-23-5 DC-DC Converters ROHSMicrochip TechnologyDC-DC ConvertersVCNL4200
SMD-10PUncategorisedVishay IntertechnologySI1308EDL
SC-70-3-55℃~+150℃ 1 N-channel 1.4nC@10V 1.5A 1.5V 105pF 11pF 132mΩ@10V 23pF 30V 400mW N-Channel SOT-323 MOSFETs ROHSVishay IntertechnologyMOSFETsAYF333135A
P=0.3mm-55℃~+85℃ 0.2mm 0.3mm 0.88mm 31P Copper Alloy Gold P=0.3mm FFC, FPC (Flat Flexible) Connector Assemblies ROHSPanasonicFFC, FPC (Flat Flexible) Connector AssembliesDMG2301L
SOT-23-55℃~+150℃ 1 P-Channel 1.2V 1.5W 150mΩ@2.5V 20V 3A 5.5nC@4.5V P-Channel SOT-23 MOSFETs ROHSDiodes IncorporatedMOSFETsMBR0520
SOD-123-55℃~+150℃ 20V 450mV@500mA 5.5A 500mA Independent SOD-123 Schottky Diodes ROHSJiangsu Changjing Electronics Technology (CJ)Schottky DiodesRV-8803-C7-TA-QC
-- Lack of specifications ROHSMicro CrystalUncategorised
README
README.mdBluetooth Wall Audio Player

A low power, wall mounted, Bluetooth audio player, clock, and environmental monitor
[!Warning] This is personal project. It was built and works without issue for my purposes. It is made public here in case some part of it is useful to others, but neither the hardware nor firmware have been rigorously tested.
Features:
- Media/volume controls
- Song metadata display
- Time, temperature, pressure, humidity display on idle
- Ultra low power sleep with proximity sensing wakeup
- Differential analog and S/PDIF digital audio output
This repo contains the firmware and PCB/enclosure design.
See custom electronics projects at DuckToast.com for full project details.
Build
The project uses the PlatformIO dependency management/build system. If you have PlatformIO installed, executing the run command in the root folder should 🙏 be all that is required for a successful build. The platformio.ini file contains the required configuration and PlatformIO will download the required platform dependencies and toolchain.
1. Clone repo and download submodules
> git clone https://github.com/canardos/bluetooth-wall-player.git
> cd bluetooth-wall-player
> git submodule update --init2. Build firmware (PlatformIO must be installed)
> pio run3. Upload to device
Similarly, use pio run --target upload to upload the firmware to the device. You'll likely need to update the upload settings in platformio.ini to reflect your settings, or use your own upload tool.
> pio run --target upload4. [optional] Create project files for IDE
If you want to view/edit the project in your favorite IDE, use PlatformIO to generate the appropriate setup/workspace files and import the project:
> pio project init --ide [atom|clion|codeblocks|eclipse|emacs|netbeans|qtcreator|sublimetext|vim|visualstudio|vscode]See the PlatformIO documentation for further details.
Using an alternate build system
Platform dependencies
If you wish to use a different build system, you will need:
| ST STM32 CMSIS headers | Peripheral/register definitions |
| CMSIS headers/source | CMSIS HAL functionality - SysTick_Config, NVIC_xxx etc. |
| CMSIS Cortex-M3 system source | SystemInit()/SystemCoreClockUpdate() implementation and SystemCoreClock |
| Startup source file | ASM file containing the startup code and vector table |
| Linker script | Tells the linker how to setup everything in flash/SRAM |
All of these are available in the STM32 SDK available from ST Micro.
Compiling / linking
platformio.ini lists the required compiler flags. Be sure to use --specs=nano.specs and --specs=nosys.specs when linking using your own tools.
Compiler
The project was built with gcc-arm-none-eabi 9.2.1 It should work with any later GCC version and possibly with other compilers. The code contains some GCC flags and some C99 VLAs.
Target requirements
| MCU | STM32F1xx |
| Flash | >42kb |
| SRAM | >8kb |
Dependencies (firmware)
CMSIS
PlatformIO should automatically include/link the correct headers/sources from the STM32 SDK. Version 9.0.0 was used in production.
Libpekin
Libpekin is a collection of shared MCU-related code resulting from this and other projects. It's included as a Git submodule in the lib folder. PlatformIO will include the lib subfolders automatically.
Hardware
PCB
The PCB was designed with KiCad v.5, but the files have been upgraded to v.7 and are located in /hardware/pcb. Gerber output for the first revision is located in /hardware/pcb/plots_rev_a.
[!Important] Several fixes have been made to the design, which are implemented in the latest schematic/pcb files, but are not present in the revision A plot output.
See the KiCad documentation for information on installing and using KiCad.
Custom symbols and footprints required by the board are included as a Git submodule at /hardware/pcb/kicad-mycustom-lib, and are included in the KiCad project as a project-specific library.
Enclosure
The enclosure design includes a laser-cut wooden facade. The CAD files for the design are located in /hardware/enclosure/laser_cut_facade.
A Sketchup model I used to model the mechanical constraints of the design is included in /hardware/enclosure.
Folder structure
BTWallPlayer
|
+--artwork | SVG sources for animation
| |
| +--render | bitmap output frames
|
+--hardware
| |
| +--pcb | KiCad schematic and board design files
| +--enclosure | Enclosure Sketchup model and laser cutting
| | design files
|
+--lib
| |
| +--libpekin | Libpekin platform independent code
| +--libpekin_stm32 | Libpekin STM32 specific code
|
+--src
| |
| +--data | Image and font data
| +--devices | Hardware device drivers
|
|--test | No tests in useLicense
This software is available under the MIT license.
Parts
63| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C2, C3, C4, C12, C13, C14 |
| 5 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C6, C7, C9, C10, C11 |
| 4 | 0.01uF | Capacitor_SMD:C_0402_1005Metric | C8, C15, C16, C18 |
| 4 | 20k | Resistor_SMD:R_0603_1608Metric | R3, R4, R5, R14 |
| 3 | 100R | Resistor_SMD:R_0603_1608Metric | R6, R7, R8 |
| 3 | Si1308EDL | Package_TO_SOT_SMD:SOT-323_SC-70 | Q1, Q2, Q3 |
| 2 | 24pF | Capacitor_SMD:C_0402_1005Metric | C1, C5 |
| 2 | 4.7k | Resistor_SMD:R_0603_1608Metric | R10, R11 |
| 1 | .MyCustom_dukio_logos:dukio-20mm | ||
| 1 | 1.8R | Resistor_SMD:R_0603_1608Metric | R13 |
| 1 | 13R | Resistor_SMD:R_0603_1608Metric | R17 |
| 1 | 180k | Resistor_SMD:R_0603_1608Metric | R16 |
| 1 | 1M | Resistor_SMD:R_0603_1608Metric | R15 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R12 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C17 |
| 1 | 330R | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 500mA | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | F1 |
| 1 | 560k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 680uF | Capacitor_THT:C_Radial_D6.3mm_H7.0mm_P2.50mm | C19 |
| 1 | 8MHz | Crystal:Crystal_SMD_HC49-SD | Y1 |
| 1 | AYF333135 | .MyCustom_general:FPC_Socket_0.3_31_Panasonic_AYF333135 | J2 |
| 1 | BME280 | Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumbering | U3 |
| 1 | Buttons | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Horizontal | J8 |
| 1 | DMG2301L | Package_TO_SOT_SMD:SOT-23 | Q4 |
| 1 | Debug | Connector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_Vertical | J6 |
| 1 | ERM | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Horizontal | J4 |
| 1 | MBR0520 | Diode_SMD:D_SOD-123 | D1 |
| 1 | MCP1661 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | OutL | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J1 |
| 1 | OutR | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J5 |
| 1 | OutSPDIF | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J7 |
| 1 | PCB_LED | Diode_SMD:D_0603_1608Metric | D2 |
| 1 | PROX Header | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J15 |
| 1 | PROX Socket | Connector_PinSocket_2.54mm:PinSocket_2x03_P2.54mm_Vertical | J14 |
| 1 | Power | Connector_Molex:Molex_KK-254_AE-6410-03A_1x03_P2.54mm_Vertical | J13 |
| 1 | RN52 factory reset | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Horizontal | J3 |
| 1 | RN52-I_RM116 | .MyCustom_general:Bluetooth_module_Microchip_RN52 | IC1 |
| 1 | RV-8803-C7-TA-QC | .MyCustom_general:RTC_Microcrystal_RV-8803-C7-TA-QC | Y2 |
| 1 | STM32F103C8Tx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U1 |
| 1 | TPS22860DBVR | Package_TO_SOT_SMD:SOT-23-6 | U4 |
| 1 | VCNL4200 | .MyCustom_general:Proximity_Sensor_Vishay_VCNL4200 | IC2 |
| 1 | VLCF4024T-4R7 | .MyCustom_general:Inductor_L_TDK_VLCF4024 | L1 |
Similar boards
- 4 layers91.4 × 88.4 mm

- 2 layers49.5 × 50.3 mm

- 6 layers180 × 74 mm

- 2 layers13.5 × 13 mm

- 2 layers28.5 × 15 mm

- 2 layers92.8 × 74 mm

Sdi12-esphome
fraxinas/sdi12-esphome
SDI-12 professional meteorologic sensors interface for ESPHome
37 parts8 - 2 layers101 × 76.2 mm

Boardlock
ECE477Group13/hardware_pcb
GitHub backup of PCB design files (Schematic and Board files)
131 parts - 6 layers72 × 101.3 mm

Questions
How big is the Bt audio rec PCB?
It measures 54 × 82 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Bt audio rec use?
63 parts, built around the BME280, MCP1661-E/OT, VCNL4200 and SI1308EDL. 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 Bt audio rec KiCad files?
From the canardos/bluetooth-wall-player repository on GitHub, at the commit this page was made from: the board is hardware/pcb/bt_audio_rec.kicad_pcb and its schematic hardware/pcb/bt_audio_rec.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Bt audio rec 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).