

BBS BUFFER A
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
8MAX3485EESA
SOIC83.3V-Powered, ±15kV ESD-Protected, 12Mbps,True RS-485/RS-422 Half Duplex TransceiverMaxim Integrated (Analog Devices)UncategorisedOH49E-S
SOT-23-20℃~+100℃ 2.5V~10V 2mV/Gs 4.2mA ±120mT SOT-23 Linear Hall Sensors ROHSNanjing Ouzhuo TechLinear Hall SensorsMST5333BTS
SOT-89-3-40℃~+85℃@(Ta) 1 1.6uA 200mA 3.3V 300mV@(100mA) 35V Fixed Positive Short Circuit Protection、Thermal shutdown SOT-89-3 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMSTVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsB3U-1000P
SMD,3x2.5mm-25℃~+70℃ 1.53N 1.6mm 12V 2.5mm 3mm 50mA Round Button SMD(SMT) Tab SPST Surface Mount,Vertical SMD,3x2.5mm Tactile Switches ROHSOmronTactile SwitchesHC-MX3.0-2*2AW
弯插,P=3mm-25℃~+85℃ 2 2 250V 2x2P 3mm 3mm 4P 5A Black Brass Harpoon Contact (Plastic) Micro-Fit(MX 3.0) PA66 Right Angle Tin Push-Pull,P=3mm Wire To Board Connector ROHSHCTLWire To Board ConnectorHC-MX3.0-2*3AW
弯插,P=3mm-25℃~+85℃ 2 250V 2x3P 3 3mm 3mm 5A 6P Black Brass Harpoon Contact (Plastic) Micro-Fit(MX 3.0) PA66 Right Angle Tin Push-Pull,P=3mm Wire To Board Connector ROHSHCTLWire To Board ConnectorPSM712-LF-T7
SOT-23-55℃~+150℃ 12V 13.3V 19V 1uA、20uA 30A@8/20us、34A@8/20us 600W@8/20us 75pF IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 TVS Unidirectional SOT-23 ESD and Surge Protection (TVS/ESD) ROHSPROTEKESD And Surge Protection (TVS/ESD)XL-5050RGBC-WS2812B
5050- LCDH ROHSXINGLIGHTUncategorised
README
README.mdBBS_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:
pio run -e genericCH32V003A4M6
pio run -t upload -e genericCH32V003A4M6Pin 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 calibrationUART_ENABLE— UART debug printsPWM_USE_PC4— choose PWM pin (PC4 vs PA1)ADC_MIN_DEFAULT,ADC_MAX_DEFAULT— fallback rangeBUTTON_LONG_MS— long‑press threshold
Files of Interest
src/main.c— main control loopsrc/calibration.c/include/calibration.h— flash storage helpers
Notes
Flash writes erase a full page. Avoid saving excessively in tight loops.
Recommended 3D Model
Parts
33| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100nF | Capacitor_SMD:C_0603_1608Metric | C2, C5, C6, C7, C8 |
| 4 | ~ | Resistor_SMD:R_0402_1005Metric | R5, R6, R7, R8 |
| 3 | 10uF | Capacitor_SMD:C_1206_3216Metric | C1, C3, C4 |
| 3 | ~ | MountingHole:MountingHole_2.2mm_M2_DIN965 | TP1, TP2, TP3 |
| 2 | 100kΩ | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 2 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J1, J2 |
| 1 | 10Ω | Capacitor_SMD:C_0603_1608Metric | R1 |
| 1 | 120Ω | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | B3U-1000P | easyeda2kicad:SW-SMD_L4.0-W3.0-LS5.0 | SW1 |
| 1 | BUFF_SEL | Jumper:SolderJumper-3_P2.0mm_Open_TrianglePad1.0x1.5mm | JP1 |
| 1 | CH32V003JxMx | Package_SO:JEITA_SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | GND | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J3 |
| 1 | HC-MX3.0-2*2AW | easyeda2kicad:CONN-TH_4P-P3.00_HC-MX3.0-2X2AW_1 | CN1 |
| 1 | HC-MX3.0-2*3AW | easyeda2kicad:CONN-TH_6P-P3.00_HC-MX3.0-2X3AW_1 | CN2 |
| 1 | MAX3485EESA | easyeda2kicad:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL | U3 |
| 1 | MST5333BTS | easyeda2kicad:SOT-89-3_L4.5-W2.5-P1.50-LS4.2-BR | U1 |
| 1 | OH49E-S | easyeda2kicad:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR | U4 |
| 1 | PSM712-LF-T7 | easyeda2kicad:SOT-23-3_L3.0-W1.7-P0.95-LS2.9-BR | D1 |
| 1 | RGB | Resistor_SMD:R_0402_1005Metric | JP2 |
| 1 | XL-5050RGBC-WS2812B | easyeda2kicad:LED-SMD_4P-L5.0-W5.0-BL_XL-5050RGBC | LED1 |
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 mm

- 2 layers90.2 × 61 mm

Electricity meter
ondras12345/electricity-meter
An STM32-based datalogger for electricity meters with pulse LED
95 partsMIT - 2 layers80 × 47 mm

- 2 layers302 × 114.6 mm

- 2 layers121.4 × 116.7 mm

- 2 layers86 × 13 mm

- 2 layers391 × 131.1 mm

- 2 layers92.7 × 65.4 mm

Lightweatherv3
dominicmason555/lightweatherv3
Open-Source Hardware and Firmware IO and Temperature/Pressure/Humidity/Gas Sensor MQTT Board
201 parts2CERN-OHL-S-2.0