Skip to the content
PCBKitNew board
2 layers155.8 × 76.2 mmGamepad, the printed circuit board in 3D

Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

Size
155.8 × 76.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
100
Nets
98
Pads
370
Tracks, vias
902, 216
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Apr 2019
Updated
2 Nov 2026

Overview

Gamepad is an open-source printed circuit board by vsfteam, from the vsfteam/vsf repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 155.8 × 76.2 mm with 100 parts on 98 nets, routed with 902 tracks and 216 vias.

It is built around the ADS7830IPW, 74HC165D and 74HC595, with the AO3402 among its other parts. Its parts include 38 resistors, 18 capacitors, 14 switches, 13 connectors and 8 diodes. It belongs with the keyboards and input boards of this library.

Main components

4

README

README.md

VSF -- Versaloon Software Framework

GitHub

windows-build cmake-native-build cmake-arm-cross-build

vsf.linux windows build cmake-arm-cross-build cmake-native-build

vsf.demo build

中文 |

Full name of VSF is "Versaloon Software Framework". VSF is an open-source software framework for embedded applications based on Apache2 license. VSF includes hal, a pre-emptive multi-thread kernel, services and components. VSF is implemented by C language with object-oriented programming methods(PLOOC).

Overall Framework

Catalogue

NameDescription
documentdocument
doxygenconfiguration of doxygen
exampledemo codes
hardwarehardware of VSF development boards
patchsome patches(for 3rd-party components, etc)
script
 cmakecmake scripts
sourcesource code of VSF
 componentcomponent(filesystem, stacks, UI, drivers, etc)
 halhardware abstraction layer(ARCH support, chip drivers)
 kernelVSF pre-emptive/collaborative kernel
 osa_servicesoftware services based on kernel
 servicesoftware services
 shellshell to use application software for other systems
 utilitiesbase software utilities(preprocessor, compiler, list, etc)

Kernel

Pre-emptive kernel based on event-driven architecture, supporting mcs51, 8bit MCU, 32/64 bit ARM, riscv, x86, etc.

  • event-driven architecture, sleep if no event occurred, lower-power naturally
  • in pre-emptive mode, task switch is implemented by hardware swi(software interrupt), priority of task is the priority of the swi.
  • pre-emptive scheduling for tasks with different priority, collaborative scheduling for tasks with the same priority
  • can run in other RTOS as a task, or as swi ISR
  • different tasks
    • event handler task -- minimum resources usage, 20 bytes ram usage for minimum configuration, 40 bytes ram usage for normal configuration
    • pt task
    • thread with dedicated stack -- depending on setjmp in libc
    • fsm task
    • other tasks in shell, eg pthread
  • IPC: semaphore, mutex, trigger, queue, etc

Components

  • Reasonable framework for code re-use
  • declarative development model
  • standard interface, standard port for 3rd-party components
  • software components
    • distbus -- distributed bus framework
    • fifo
    • heap
    • json
    • pool
    • stream
    • trace
  • Components
    • fs -- filesystem with vfs support
    • input -- input sub-system
    • mal -- memory abstraction layer(normally known as 'block' device)
    • scsi -- SCSI device
    • tcpip -- TCPIP stack and netdrv drivers
    • ui -- UI and display drivers
    • usb -- USB host/slave stacks
    • bt -- bt stack(using btstack)

HAL -- hardware abstraction layer

  • standard hal interface and API -- eg: vsf_spi_init can be used with hardware SPI, GPIO emulated SPI, SPI from external usb device, etc
  • IP core driver -- simplify porting by implement clock, reset, interrupt functions which is not provided by IP core
  • template for different interfaces and functionalities
  • interfaces
    • PM
    • GPIO
    • SPI
    • I2C
    • PWM
    • ADC
    • SWI
    • USART
    • FLASH
    • USB
    • ethernet

Shell

To use applications from other system, shell can be used.

  • SDL -- use applications based on SDL directly
  • linux -- use applications based on linux directly
    • posix
    • devfs
    • socket
    • console
    • libraries
      • libusb
      • libgen
      • libsdl2
      • libcurl
      • etc

3rd-party

SoftwarePathLicenseLink
btstacksource/component/3rd-party/btstack/rawOtherhttps://github.com/bluekitchen/btstack
coremarksource/component/3rd-party/coremark/rawApachehttps://github.com/eembc/coremark
freetypesource/component/3rd-party/freetype/rawFreeTypehttps://freetype.org/
zlibsource/component/3rd-party/zlib/rawzlibhttp://zlib.net/
nuklearsource/component/3rd-party/nuklear/rawMTIhttps://github.com/Immediate-Mode-UI/Nuklear
nnomsource/component/3rd-party/nnom/rawApache 2.0https://github.com/majianjia/nnom
luasource/component/3rd-party/lua/rawMIThttps://www.lua.org/
lwipsource/component/3rd-party/lwip/rawBSDhttps://savannah.nongnu.org/projects/lwip/
libpngsource/component/3rd-party/libpng/rawPNG2https://libpng.sf.net
libjpeg-turbosource/component/3rd-party/libjpeg-turbo/rawBSDhttps://libjpeg-turbo.org/
SDL_ttfsource/shell/media/sdl2/3rd-party/SDL_ttfzlibhttps://hg.libsdl.org/SDL_ttf/
SDL_imagesource/shell/media/sdl2/3rd-party/SDL_imagezlibhttps://hg.libsdl.org/SDL_image/
lvglsource/component/3rd-party/lvgl/raw/lvglMIThttps://lvgl.io/
lv_lib_freetypesource/component/3rd-party/lvgl/extension/lv_lib_freetype/rawMIThttps://lvgl.io/
CMSISsource/utilities/compiler/arm/3rd-party/CMSISApache 2.0https://github.com/ARM-software/CMSIS_5
PLOOCsource/utilities/3rd-party/PLOOC/rawApache 2.0https://github.com/GorgonMeducer/PLOOC
mbedtlssource/component/3rd-party/mbedtls/rawApache 2.0https://tls.mbed.org/
Segger_RTTsource/component/3rd-party/segger/raw/RTTseggerhttps://wiki.segger.com/RTT
Segger_SystemViewsource/component/3rd-party/segger/raw/SystemViewseggerhttps://wiki.segger.com/SystemView
nuconsolesource/component/3rd-party/nuconsole/rawnuvotonhttps://www.nuvoton.com.cn/
AIC8800M_SDKsource/hal/driver/AIC/AIC8800/vendoraichttp://www.aicsemi.com/
awtkLGPL 2.1https://www.zlg.cn/index/pub/awtk.html
littlefssource/component/3rd-party/littlefs/rawBSDhttps://github.com/littlefs-project/littlefs
getopt_longsource/shell/sys/linux/lib/3rd-party/getoptOpenBSDhttps://github.com/openbsd/src
regexsource/shell/sys/linux/lib/3rd-party/regexOpenBSDhttps://github.com/openbsd/src
fnmatchsource/shell/sys/linux/lib/3rd-party/fnmatchBSDhttp://www.jbox.dk/sanos/source/lib/fnmatch.c.html
globsource/shell/sys/linux/lib/3rd-party/globBSDhttps://github.com/cloudius-systems/musl
setjmpsource/hal/arch/x86/winBSD
libtuvsource/shell/sys/linux/lib/3rd-party/libtuv/rawApache 2.0https://github.com/Samsung/libtuv
scguisource/component/ui/tgui/view/scgui_view/scgui.c&hMIThttps://gitee.com/li_yucheng/scgui

Parts

100
QtyValueFootprintReferences
194.7KResistor_SMD:R_0402_1005MetricR10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R31 +3
12SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW2, SW3, SW4, SW6, SW7, SW8, SW9, SW10, SW12, SW13, SW14, SW15
70.1uFCapacitor_SMD:C_0402_1005MetricC5, C7, C8, C15, C16, C17, C18
62KResistor_SMD:R_0402_1005MetricR33, R34, R35, R36, R37, R38
50Resistor_SMD:R_0402_1005MetricR26, R27, R28, R29, R30
5100nFCapacitor_SMD:C_0402_1005MetricC9, C10, C11, C12, C14
51uFCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C13
4100Resistor_SMD:R_0402_1005MetricR5, R6, R7, R25
41N4148Diode_SMD:D_SOD-323_HandSolderingD1, D2, D3, D4
447kResistor_SMD:R_0402_1005MetricR1, R2, R3, R4
4AO3402Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4LEDLED_SMD:LED_0805_2012MetricD5, D6, D7, D8
274HC165Package_SO:SOP-16_3.9x9.9mm_P1.27mmU2, U3
2Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ7, J8
2SW_PushButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx58-2LFSSW1, SW11
2~VSF:JoyStickJ5, J6
10.1nFCapacitor_SMD:C_0402_1005MetricC6
174HC595Package_SO:SOP-16_3.9x9.9mm_P1.27mmU1
1ADS7830Package_SO:TSSOP-16_4.4x5mm_P0.65mmU4
1Conn_01x05Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ12
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ13
1Conn_01x14Connector_PinHeader_2.54mm:PinHeader_1x14_P2.54mm_VerticalJ10
1Conn_02x15_Odd_EvenVSF:PinSocket_2x15_P2.54mm_Horizontal_2LayerJ9
1Micro_SD_Card_Det1VSF:MicroSD_TinyJ11
1Rumble_MLConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1Rumble_MRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1Rumble_TLConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1Rumble_TRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1~VSF:Gamepad_OutlineVSF1

Questions

How big is the Gamepad PCB?

It measures 155.8 × 76.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Gamepad use?

100 parts, built around the ADS7830IPW, 74HC165D, 74HC595 and AO3402. 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 Gamepad KiCad files?

From the vsfteam/vsf repository on GitHub, at the commit this page was made from: the board is hardware/ext/gamepad/gamepad.kicad_pcb and its schematic hardware/AC6321A/vsf_ac6321a.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Gamepad design in my own project?

Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from vsfteam/vsf

11
  • 2 layers25.4 × 33 mmPegboard, the printed circuit board in 3D

    Pegboard

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    222 parts341Apache-2.0
  • 2 layers62.2 × 99.1 mmVsf gd32h759, the printed circuit board in 3D

    Vsf gd32h759

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    127 parts341Apache-2.0
  • 4 layers36.8 × 57.2 mmVsf aic8800m40b, the printed circuit board in 3D

    Vsf aic8800m40b

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    92 parts341Apache-2.0
  • 4 layers34.9 × 30.5 mmVsf m484, the printed circuit board in 3D

    Vsf m484

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    81 parts341Apache-2.0
  • 2 layers50.8 × 69.2 mmUikit, the printed circuit board in 3D

    Uikit

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    51 parts341Apache-2.0
  • 2 layers36.8 × 57.1 mmVsf ac6321a, the printed circuit board in 3D

    Vsf ac6321a

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    42 parts341Apache-2.0
  • 2 layers47.8 × 27.4 mmVsf stm32h7b0, the printed circuit board in 3D

    Vsf stm32h7b0

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    37 parts341Apache-2.0
  • 2 layers27.9 × 50.8 mmVsf aic8800, the printed circuit board in 3D

    Vsf aic8800

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    33 parts341Apache-2.0
  • 2 layersJTAG ext, the printed circuit board in 3D

    JTAG ext

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    14 parts341Apache-2.0
  • 2 layers36.8 × 33 mmAdapter, the printed circuit board in 3D

    Adapter

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    5 parts341Apache-2.0
  • 2 layers30.5 × 45.7 mmMux, the printed circuit board in 3D

    Mux

    vsfteam/vsf

    Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

    3 parts341Apache-2.0

Similar boards

  • 4 layers267.1 × 198.7 mmMCR prototype PCB, the printed circuit board in 3D

    MCR prototype PCB

    alanswx/Arcade-MCR2-TangFPGA

    Standalone port of the Bally Midway MCR arcade families for Sipeed Tang FPGA boards — no MiSTer/HPS required. MCR-2 (Tron, Domino Man, Satan's Hollow, Wacko, Kozmik Kroozr, Two Tigers), MCR-3/91490 (Tapper —…

    147 parts
  • 2 layers65 × 56 mmBigp4ppa, the printed circuit board in 3D

    Bigp4ppa

    gcormier/bigp4ppa

    A Raspberry Pi 5-channel PWM, PT100 and ADXL345 board.

    28 parts28
  • 4 layers40 × 76 mmGuac, the printed circuit board in 3D

    Guac

    taciturnaxolotl/holy-guacamole

    meltybrain avacado 🥑

    66 parts13
  • 2 layersOpenMQTTGatewayPCB, the printed circuit board in 3D

    OpenMQTTGatewayPCB

    ebrithiljonas/OMG_PCB

    All in One PCB for the OpenMQTTGateway Project

    36 parts7GPL-3.0
  • 4 layers75 × 136 mmMynd Main, the printed circuit board in 3D

    Mynd Main

    Prototype-Fund-Hardware/MYND-Hardware

    Inofficial hardware repository for the Teufel MYND loudspeaker: https://teufel.de/mynd-107002004

    561 parts3
  • 4 layers48 × 50 mmTheftShield Tracker, the printed circuit board in 3D

    TheftShield Tracker

    tor1kk/TS_Tracker

    GPS tracker with SMS communication

    73 parts3GPL-3.0
  • 2 layers86 × 50 mmCYD NMEA, the printed circuit board in 3D

    CYD NMEA

    Mate8/NMEA-Tester

    Nmea0183 Sniffer basen on CYD PCB

    76 parts2