Skip to the content
PCBKitNew board
4 layers100 × 100 mmCurrent gen class ab, the printed circuit board in 3D

have you ever wanted a function gen for current in stead of voltage well here it is

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
86
Nets
48
Pads
212
Tracks, vias
248, 1,763
Pours
14
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Jul 2025
Updated
10 Aug 2025

Overview

Current gen class ab is an open-source printed circuit board by sirlilpanda, from the sirlilpanda/constant_current_function_gen repository on GitHub. It is a 4-layer board of 100 × 100 mm with 86 parts on 48 nets, routed with 248 tracks and 1,763 vias.

It is built around the BAV99. Its parts include 29 resistors, 7 diodes, 7 connectors, 5 capacitors and 4 transistors.

Main components

1

README

README.md

kicad project constant_current_function_gen

.github/workflows/main.yaml

a cool table showing the workflow of all the kicad projects.

project_nameDRCERC
current_gen_class_ab❌❌
current_gen✅✅

for a quick guide check project setup

This is a simple project template for new kicad projects. This template has some basic setup already completed such as workflows for auto creating all the things you forget when creating a kicad project such as:

This workflow will also run the design rules check on the PCB and schematic to ensure that you upload a working PCB. These reports are uploaded as summaries within the github actions tab. This template has a simple schematic PCB in it (because DRC fails on an empty PCB). Shown below is the example PCB.

example pcb with battery diode and resistor

besides from that the project also has:

  • common predefined trace widths
  • smallest vias size JLCPBC allows
  • custom net colours in the schematic editor
    • red for +V
    • blue for -V
    • grey for ground

to create a repo from this template follow this guide

contained in this template are:

  • .github/ : all files relating to github actions and other admin see here for more example of what can be placed in it

    • report_processing : where the python scripts are stored for processing the json report data from kicad
    • report_templates : where the template for said reports are stored
    • workflows/ : this is where the github actions are kept
      • main.yaml : the main github action that will auto generate all files required and run DRC and ERC
    • rename.py : the script for renaming the project
  • hardware/ : this is where the kicad projects live note this can be changed

  • docs/ : this is where the generate docs are placed by default

    • BOM/ : where the bill of materials and price breakdown are kept
      • bill_of_materials.csv: the auto generated bom for the kicad project
      • bom_report.md : a report for the bill of materials
    • template_schematic.pdf : the schematic for the kicad project, auto generated by the github action
  • pcbs/ : this is where the auto generated gerbers for the kicad project are stored

  • res/ : where resources are stored for the README

  • .gitignore: a slightly modified gitignore from the standard one

  • project_settings.yaml : where the settings for this project is stored

  • README.md : this file, suggest you change this one creating your project

project settings

there are currently very few project settings that can be changed (will will be change in the future) these are:

settingdescription
has_been_set_upa flag to tell the setup action if the project has been set up
project_namethe name of the project, this will be set to the name of the repo
production_formatsthe output production format for the PCBs
dynamic_read_meallow the readme to be updated using the given template
bom_template_paththe template used to write the bom report files
erc_report_template_paththe template used to write the erc report files
drc_report_template_paththe template used to write the drc report files
readme_template_paththe template used to write projects readme
schematic_output_namethe name suffix of the generated schematics
bom_csv_output_namethe name suffix of the generated bom csv file
bom_report_output_namethe name suffix of the generated bom report
production_file_output_namethe name suffix of the generated production file
schematic_output_paththe output path of the generated schematics files
bom_csv_output_paththe output path of the generated bom csv file
bom_report_output_paththe output path of the generated bom report
production_file_output_paththe output path of the generated production file

project setup

creating a new repo with the template

creating a new template from a repo is simple:

  1. click on the button in the top right hand corner called use this template alt text

  2. when the drop down menu appears click on create a new repository alt text

  3. once you click you will be brought to this page, note that the repo name you choose here will be the name that you kicad project is called. alt text

after these steps you then need to configure the repo settings to do their magic see configuring repo settings for what to do next.

configuring repo settings

once you have created a new repo with the template, you ill have to configure the github action settings. this is because you will get an error that looks something along these lines: alt text where the action can not commit the changes due to not having permissions follow these steps:

  1. open the repo setting alt text
  2. then head in to actions : General alt text
  3. then scroll down to workflow permissions and ensure that both Read and write permissions and Allow GitHub Actions to create and approve pull requests are ticked as seen below alt text

this should fix the problem if not, go harass stack overflow they need it Once all of these steps have been followed the workflow should be passing, however the README.md will only update on the next push request.

editing the readme

As this repo can and will automatically update the repo corresponding to the given readme template. If you dont want to use this you can always disable this by setting the dynamic_read_me to false. but if you want some very cool features like auto updating tables to show what projects are passing the rules check or simple links to parts of your directory. then have a look at the template readme and learn mustache

improvements

Parts

86
QtyValueFootprintReferences
101kResistor_SMD:R_0603_1608MetricR5, R6, R9, R10, R22, R23, R24, R26, R28, R29
8TestPointTestPoint:TestPoint_Bridge_Pitch2.54mm_Drill1.3mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8
692kResistor_SMD:R_0603_1608MetricR2, R3, R12, R13, R20, R21
51uCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5
5Conn_01x01_SocketConnector:Banana_Jack_1PinJ3, J4, J5, J6, J7
5Jumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1, JP2, JP3, JP4, JP5
4100kResistor_SMD:R_0603_1608MetricR4, R7, R8, R11
4FuseFuse:Fuseholder_Clip-5x20mm_Bel_FC-203-22_Lateral_P17.80x5.00mm_D1.17mm_HorizontalF1, F2, F4, F5
4LEDDiode_SMD:D_0603_1608MetricD4, D5, D6, D7
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4
210Resistor_SMD:R_0603_1608MetricR14, R15
210kPotentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_VerticalRV3, RV4
210kfootprints:POT_P120PK-x25_TTERV1, RV2
210kPotentiometer_THT:Potentiometer_Bourns_3296W_VerticalR18, R19
227kResistor_SMD:R_0603_1608MetricR25, R27
25RPackage_TO_SOT_THT:TO-220-2_Horizontal_TabDownR16, R17
2Conn_CoaxialConnector_Coaxial:BNC_TEConnectivity_1478035_HorizontalJ1, J2
2D_ZenerDiode_SMD:D_SOD-123D1, D2
2NMOSPackage_TO_SOT_THT:TO-220-3_Horizontal_TabDownQ2, Q3
2Opamp_DualPackage_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.29x3mm_ThermalViasU1, U2
2PMOSPackage_TO_SOT_THT:TO-220-3_Horizontal_TabDownQ1, Q4
150Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR1
1BAV99Package_TO_SOT_SMD:SOT-23D3
1G***kibuzzard-68929C33kibuzzard-68929C33
1G***kibuzzard-68929CB0kibuzzard-68929CB0
1G***kibuzzard-68929C79kibuzzard-68929C79
1G***kibuzzard-68929CA4kibuzzard-68929CA4
1G***kibuzzard-68929C81kibuzzard-68929C81
1G***kibuzzard-68929C8Dkibuzzard-68929C8D
1G***kibuzzard-68929C42kibuzzard-68929C42

Questions

How big is the Current gen class ab PCB?

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

What parts does the Current gen class ab use?

86 parts, built around the BAV99. 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 Current gen class ab KiCad files?

From the sirlilpanda/constant_current_function_gen repository on GitHub, at the commit this page was made from: the board is Hardware/current_gen_class_ab/current_gen_class_ab.kicad_pcb and its schematic Hardware/current_gen/current_gen.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Current gen class ab design in my own project?

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

Similar boards

  • 2 layers130 × 80 mmSmu main 1, the printed circuit board in 3D

    Smu main 1

    jaromir-sukuba/J-SMU

    DIY source-measure unit

    210 parts244
  • 4 layers93.2 × 62.4 mmCompute module, the printed circuit board in 3D

    Compute module

    magkopian/raspberry-pi-compute-module-base-board

    Base board for the Raspberry Pi Compute Module

    66 parts214GPL-3.0
  • 4 layers65 × 56 mmEdrumulus, the printed circuit board in 3D

    Edrumulus

    corrados/edrumulus

    Open Source E-Drum Trigger Module

    112 parts163GPL-2.0
  • 2 layers100 × 68 mmSI4684 SMD, the printed circuit board in 3D

    SI4684 SMD

    PE5PVB/SI4684-DAB-Receiver

    SI4684 ESP32 DAB Receiver

    91 parts135GPL-3.0
  • 4 layers87.1 × 78.2 mm3 in 1 Panel, the printed circuit board in 3D

    3 in 1 Panel

    kelu124/pic0rick

    An rp2040-based acquisition board for pulse-echo ultrasound

    115 parts116
  • 2 layers170.1 × 96.9 mmSmartPrintCoreH7x, the printed circuit board in 3D

    SmartPrintCoreH7x

    BoltzRnD/SmartPrintCoreH7x

    STM32H7 based Robust and Open Source 3D Printer Mainboard

    567 parts89
  • 4 layers43.4 × 25.4 mmR820t2 breakout, the printed circuit board in 3D

    R820t2 breakout

    emeb/r820t2

    Breakout PCB design and STM32F0 firmware for the Rafael R820T2 tuner chip

    83 parts85
  • 4 layers62.5 × 83.8 mmKerberos2, the printed circuit board in 3D

    Kerberos2

    FrankBuss/kerberos

    C64/C128 MIDI flash interface

    169 parts81