Skip to the content
PCBKitNew board
2 layers63.5 × 25.4 mmBfunc, the printed circuit board in 3D

Open Source, Breadboard-Friendly Function Generator Design

Size
63.5 × 25.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
45
Nets
27
Pads
219
Tracks, vias
316, 20
Pours
5
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
21 Feb 2020
Updated
23 Oct 2025

Overview

Bfunc is an open-source printed circuit board by Cushychicken, from the Cushychicken/bfunc repository on GitHub. It is a 2-layer board of 63.5 × 25.4 mm with 45 parts on 27 nets, routed with 316 tracks and 20 vias.

It is built around the MIC5504-3.3YM5. Its parts include 19 capacitors, 9 resistors, 8 connectors, 3 ICs and 2 crystals. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

bfunc - An open source, breadboard friendly function generator

These are the source files for bfunc, a function generator I've been desiging, building, and programming in my spare time.

The fastest way to understand what's going on here is to read the design document. That should give you a good top-level understanding of this project. If it doesn't, there's a Contact link on my blog. I encourage you to let me know if there's something you don't understand, or is otherwise unclear!

Project Structure

All hardware files can be found in the hardware/ directory. All hardware design was done using KiCAD.

Software is broken into two directories:

  • sw_embedded/ for all the code running on the bFunc board, and
  • sw_desktop/, which contains the Python app for the GUI.

The sw_embedded directory contains two subfolders:

  • stm32_cube_bfunc/ contains all the software used for building the prototype, which I made out of a STM32 BluePill board and a SparkFun Minigen Pro shield.
  • bfunc_rev1/ contains all the software used in the first board revision.

How can I contribute?

I'm so glad you asked! Check out the Call for Users page on my blog. That will outline the next steps for getting a board, and getting yourself set up to work on it.

After all that, if you still can't get enough bFunc in your life - I've been keeping weekly project journals on my blog in addition to the design document. Here is a link to the first one to get you started.

Parts

45
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0402_1005MetricC1, C3, C4, C5, C11, C12, C14
30RResistor_SMD:R_0402_1005MetricR6, R7, R8
31uFCapacitor_SMD:C_0805_2012MetricC15, C18, C20
210kResistor_SMD:R_0402_1005MetricR1, R3
210nFCapacitor_SMD:C_0402_1005MetricC6, C13
210pFCapacitor_SMD:C_0402_1005MetricC8, C9
24.7uFCapacitor_SMD:C_0805_2012MetricC10, C16
2Conn_01x20_MaleConnector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ9, J10
2TestPointConnect:PINTSTTP1, TP2
1100pFCapacitor_SMD:C_0402_1005MetricC7
110uFCapacitor_SMD:C_0805_2012MetricC2
11MResistor_SMD:R_0402_1005MetricR9
12.2KResistor_SMD:R_0402_1005MetricR4
1330RResistor_SMD:R_0402_1005MetricR2
1390RResistor_SMD:R_0402_1005MetricR5
14.5nFCapacitor_SMD:C_0402_1005MetricC17
1AD9837Package_CSP:LFCSP-WD-10-1EP_3x3mm_P0.5mm_EP1.64x2.38mmU1
1Conn_01x02_MaleConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1Conn_01x03_MaleConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4
1Conn_02x03_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMDJ1
1Conn_02x05_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ5
1Conn_CoaxialConnector_Coaxial:BNC_TEConnectivity_1478204_VerticalJ3
1CrystalCrystals:Crystal_SMD_TXC_9HT11-2pin_2.0x1.2mm_HandSolderingY1
1Ferrite_BeadInductor_SMD:L_0603_1608MetricFB1
1MIC5504-3.3YM5Package_TO_SOT_SMD:SOT-23-5U3
1SG-5032CANOscillators:Oscillator_SMD_SeikoEpson_SG8002LB-4pin_5.0x3.2mmX1
1STM32F072C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU2
1SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1USB_B_MicroConnector_USB:USB_Micro-B_Molex-105017-0001J6

Questions

How big is the Bfunc PCB?

It measures 63.5 × 25.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Bfunc use?

45 parts, built around the MIC5504-3.3YM5. 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 Bfunc KiCad files?

From the Cushychicken/bfunc repository on GitHub, at the commit this page was made from: the board is hardware/bfunc.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Bfunc design in my own project?

Its repository states no licence, so its author keeps all rights: ask Cushychicken before reusing the design.

Similar boards

  • 2 layers172 × 152.9 mmTrackpad, the printed circuit board in 3D

    Trackpad

    george-norton/peacock

    A big QMK powered trackpad

    102 parts309CERN-OHL-S-2.0
  • 2 layers22.9 × 36.7 mmUsb2usb, the printed circuit board in 3D

    Usb2usb

    tmk/USB2USB_Converter

    USB to USB keyboard protocol converter supported by TMK keyboard firmware

    26 parts152
  • 2 layers78 × 130 mmLofence, the printed circuit board in 3D

    Lofence

    kiu/lofence

    LoFence is a LoRaWAN capable IoT electric fence monitoring system running on the The Things Network.

    65 parts142MIT
  • 2 layers96.5 × 55 mmVera module rev2, the printed circuit board in 3D

    Vera module rev2

    fvdhoef/vera-module

    Versatile Embedded Retro Adapter

    120 parts138MIT
  • 2 layers120 × 130 mmSingularitySurfer V1, the printed circuit board in 3D

    SingularitySurfer V1

    nkrackow/SingularitySurfer-FPGA-Lock-In-Amplifier

    Repository for the development of an FPGA based DSP Lock-In Amplifier

    174 parts80MIT
  • 4 layers60.2 × 20.8 mmPhaseLatchMini, the printed circuit board in 3D

    PhaseLatchMini

    AndersBNielsen/PhaseLatchMini

    High-rate continuous streaming of interleaved dual ADC (I/Q) samples over USB Full‑Speed (FS) using only the built‑in CDC class on an STM32F103C8 ("Blue Pill" style) board.

    63 parts72
  • 2 layers98 × 56 mmThermal pcb, the printed circuit board in 3D

    Thermal pcb

    Badbird5907/thermal-camera

    My design of a cheap and affordable thermal camera

    68 parts59MIT
  • 4 layers58 × 38 mmQspimux2-prog, the printed circuit board in 3D

    Qspimux2-prog

    felixheld/qspimux

    QSPI flash multiplexer - connect a SPI NOR flash to either an embedded system or a programmer for remote firmware tests

    99 parts57CC-BY-SA-4.0