Skip to the content
PCBKitNew board
2 layers54 × 20.5 mmBBS BUFFER A, the printed circuit board in 3D

Based on the original BBS Buffer A project: https://github.com/4061N/BBS-Buffer-A

Size
54 × 20.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
33
Nets
21
Pads
90
Tracks, vias
204, 77
Pours
105
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
7 Feb 2026
Updated
14 May 2026

Overview

BBS BUFFER A is an open-source printed circuit board by mengxyz, from the mengxyz/BBS_BUFFER_A repository on GitHub, published under the MIT licence. It is a 2-layer board of 54 × 20.5 mm with 33 parts on 21 nets, routed with 204 tracks and 77 vias.

It is built around the MAX3485EESA, OH49E-S and MST5333BTS, with the B3U-1000P, HC-MX3.0-2*2AW and HC-MX3.0-2*3AW among its other parts. Its parts include 8 capacitors, 8 resistors, 5 connectors, 4 ICs and 2 diodes. It belongs with the RISC-V boards of this library.

Main components

8

README

README.md

BBS_BUFFER_A

BAMBU Filament Buffer alternative with super cheap component

Minimal, fast, and hardware‑focused firmware for the CH32V003.
This project currently ships a clean ADC → PWM control loop with button‑driven calibration stored in flash.

Built with GPT Codex 5.2.

Based on the original BBS Buffer A project: https://github.com/4061N/BBS-Buffer-A

Highlights

  • 10‑bit ADC read on PA2, mapped to PWM duty.
  • PWM output on PC4 (TIM1 CH4) by default.
  • Short/long press calibration on PC1:
    • Short press → save min ADC
    • Long press → save max ADC
  • Calibration stored in on‑chip flash (EEPROM‑style).
  • UART debug prints on PD5 (115200 8N1).

Quick Start (PlatformIO)

From repo root:

bash
pio run -e genericCH32V003A4M6
pio run -t upload -e genericCH32V003A4M6

Pin Map (current firmware)

  • PA2: ADC input
  • PC4: PWM output (TIM1 CH4)
  • PC1: Button input (internal pull‑up, active‑low)
  • PD5: UART TX (115200 8N1)
  • PC2: WS2812 data (optional, not used by default)

Calibration Behavior

On button release:

  • Press < BUTTON_LONG_MS → save min ADC
  • Press ≥ BUTTON_LONG_MS → save max ADC

Saved values are written to the last flash page and loaded on boot.
If flash data is invalid, firmware falls back to defaults.

Key Config Macros (src/main.c)

  • USE_CALC — enable/disable flash calibration
  • UART_ENABLE — UART debug prints
  • PWM_USE_PC4 — choose PWM pin (PC4 vs PA1)
  • ADC_MIN_DEFAULT, ADC_MAX_DEFAULT — fallback range
  • BUTTON_LONG_MS — long‑press threshold

Files of Interest

  • src/main.c — main control loop
  • src/calibration.c / include/calibration.h — flash storage helpers

Notes

Flash writes erase a full page. Avoid saving excessively in tight loops.

Recommended 3D Model

BBS Buffer A XMCU Series Buffer 3D model

Parts

33
QtyValueFootprintReferences
5100nFCapacitor_SMD:C_0603_1608MetricC2, C5, C6, C7, C8
4~Resistor_SMD:R_0402_1005MetricR5, R6, R7, R8
310uFCapacitor_SMD:C_1206_3216MetricC1, C3, C4
3~MountingHole:MountingHole_2.2mm_M2_DIN965TP1, TP2, TP3
2100kΩResistor_SMD:R_0603_1608MetricR3, R4
2Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1, J2
110ΩCapacitor_SMD:C_0603_1608MetricR1
1120ΩResistor_SMD:R_0603_1608MetricR2
1B3U-1000Peasyeda2kicad:SW-SMD_L4.0-W3.0-LS5.0SW1
1BUFF_SELJumper:SolderJumper-3_P2.0mm_Open_TrianglePad1.0x1.5mmJP1
1CH32V003JxMxPackage_SO:JEITA_SOIC-8_3.9x4.9mm_P1.27mmU2
1GNDConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ3
1HC-MX3.0-2*2AWeasyeda2kicad:CONN-TH_4P-P3.00_HC-MX3.0-2X2AW_1CN1
1HC-MX3.0-2*3AWeasyeda2kicad:CONN-TH_6P-P3.00_HC-MX3.0-2X3AW_1CN2
1MAX3485EESAeasyeda2kicad:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BLU3
1MST5333BTSeasyeda2kicad:SOT-89-3_L4.5-W2.5-P1.50-LS4.2-BRU1
1OH49E-Seasyeda2kicad:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRU4
1PSM712-LF-T7easyeda2kicad:SOT-23-3_L3.0-W1.7-P0.95-LS2.9-BRD1
1RGBResistor_SMD:R_0402_1005MetricJP2
1XL-5050RGBC-WS2812Beasyeda2kicad:LED-SMD_4P-L5.0-W5.0-BL_XL-5050RGBCLED1

Questions

How big is the BBS BUFFER A PCB?

It measures 54 × 20.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the BBS BUFFER A use?

33 parts, built around the MAX3485EESA, OH49E-S, MST5333BTS and B3U-1000P. 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 BBS BUFFER A KiCad files?

From the mengxyz/BBS_BUFFER_A repository on GitHub, at the commit this page was made from: the board is pcb/BBS_BUFFER_A.kicad_pcb and its schematic pcb/BBS_BUFFER_A.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the BBS BUFFER A 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).

Similar boards

  • 2 layers31.2 × 99.6 mmBMCU MB SHARED, the printed circuit board in 3D

    BMCU MB SHARED

    mengxyz/ESP_BMCU

    77 partsGPL-3.0
  • 2 layers90.2 × 61 mmElectricity meter, the printed circuit board in 3D

    Electricity meter

    ondras12345/electricity-meter

    An STM32-based datalogger for electricity meters with pulse LED

    95 partsMIT
  • 2 layers80 × 47 mmTerminal, the printed circuit board in 3D

    Terminal

    balanceTWK/WBMS

    32 parts
  • 2 layers302 × 114.6 mmA58HE kb, the printed circuit board in 3D

    A58HE kb

    xviee/A58HE

    Hall effect 50% Alice-like keyboard

    214 parts1AGPL-3.0
  • 2 layers86 × 13 mmPCBA INTERFACE, the printed circuit board in 3D

    PCBA INTERFACE

    intechstudio/grid-hardware

    50 parts59GPL-3.0
  • 2 layers391 × 131.1 mmAustin, the printed circuit board in 3D

    Austin

    AcheronProject/Austin

    Austin PCB

    599 parts18
  • 2 layers92.7 × 65.4 mmLightweatherv3, the printed circuit board in 3D

    Lightweatherv3

    dominicmason555/lightweatherv3

    Open-Source Hardware and Firmware IO and Temperature/Pressure/Humidity/Gas Sensor MQTT Board

    201 parts2CERN-OHL-S-2.0